Files
2025-11-29 18:14:39 +08:00

118 lines
3.7 KiB
Markdown

---
description: Plan work for current or next cycle using Linearis and GitHub
category: project-task-management
tools: Bash(linearis *), Bash(gh *), Read, Write, TodoWrite
model: inherit
version: 1.0.0
status: placeholder
---
# Cycle Planning
**Status**: Placeholder for v1.0 - Full implementation coming in future release
## Planned Functionality
This command will help you plan work for the current or upcoming cycle by:
1. Fetching current and next cycle information
2. Listing backlog tickets ready for planning
3. Interactively assigning tickets to cycles
4. Setting milestones and priorities
5. Generating cycle plan summary
## Current Workaround
Use Linearis CLI directly:
```bash
# Get active cycle
linearis cycles list --team TEAM --active
# List backlog tickets (filter with jq - issues list only supports --limit)
linearis issues list --limit 100 | jq '.[] | select(.state.name == "Backlog")'
# Assign ticket to cycle
linearis issues update TICKET-123 --cycle "Sprint 2025-11"
# Set priority
linearis issues update TICKET-123 --priority 2
```
### Example Workflow
```bash
# 1. View active cycle
linearis cycles list --team ENG --active | jq '.[] | {name, startsAt, endsAt, progress}'
# 2. View next cycle
linearis cycles list --team ENG --limit 5 | jq '.[1]'
# 3. List backlog tickets ready for planning (filter with jq)
linearis issues list --limit 100 | \
jq '.[] | select(.state.name == "Backlog") | {id, title, priority}'
# 4. Review recent PRs to understand current work
# This helps identify work done but not captured in Linear tickets
gh pr list --state merged --limit 20 --json number,title,author,mergedAt,closedAt
# Filter by date range (e.g., last 2 weeks for planning context)
gh pr list --state merged --search "merged:>=$(date -v-14d +%Y-%m-%d)" \
--json number,title,author,mergedAt --jq '.[] | "\(.author.login): \(.title)"'
# 5. Identify who is working on what
gh pr list --state open --json number,title,author,createdAt | \
jq 'group_by(.author.login) | map({author: .[0].author.login, prs: map({number, title})})'
# 6. Assign high-priority tickets to next cycle
linearis issues update ENG-123 --cycle "Sprint 2025-11" --priority 2
linearis issues update ENG-124 --cycle "Sprint 2025-11" --priority 2
# 7. Generate summary (manual)
# Count tickets by cycle and priority
```
## Future Implementation
When fully implemented, this command will:
- **Interactive cycle selection** - Choose current or next cycle
- **Smart backlog filtering** - Show tickets by priority and readiness
- **Batch assignment** - Select multiple tickets to assign at once
- **Capacity planning** - Estimate points/hours per ticket
- **Milestone tracking** - Group tickets by project milestones
- **PR-based work tracking** - Auto-detect work from merged/open PRs to identify:
- Work completed but not tracked in Linear
- Who is actively working on what
- Team velocity based on PR activity
- **Team activity report** - Show contribution breakdown by team member
- **Summary generation** - Create cycle plan document in thoughts/
Track progress at: https://github.com/coalesce-labs/catalyst/issues
## Configuration
Uses `.claude/config.json`:
```json
{
"linear": {
"teamKey": "ENG",
"defaultTeam": "Backend"
}
}
```
## Tips
- Plan cycles **before they start** - gives team time to review
- Prioritize by **user impact** and **dependencies**
- Leave **buffer capacity** for bugs and urgent tasks
- Use **milestones** to group related work
- Review cycle plans in team meetings for alignment
- **Check PR activity** before planning to understand:
- What work has been completed recently
- Who is actively contributing
- Untracked work that should be captured in Linear
- Team velocity and capacity trends