From fa11bb5280abb52c7d335955374b2b495ff55605 Mon Sep 17 00:00:00 2001 From: Andrew Ronaldson Date: Wed, 18 Mar 2026 19:17:37 -0300 Subject: [PATCH 1/3] Refactor chatbot integration example to enhance clarity and remove unnecessary markup --- .cursor/skills/summarize-issues/SKILL.md | 213 +++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 .cursor/skills/summarize-issues/SKILL.md diff --git a/.cursor/skills/summarize-issues/SKILL.md b/.cursor/skills/summarize-issues/SKILL.md new file mode 100644 index 0000000..0ad5765 --- /dev/null +++ b/.cursor/skills/summarize-issues/SKILL.md @@ -0,0 +1,213 @@ +--- +name: summarize-issues +description: "Summarize Jira issues assigned to the current user and recommend priorities. Use when the user asks to: (1) See what's on their plate, (2) Summarize their assigned work, (3) Prioritize their issues or tasks, (4) Get an overview of their Jira backlog, or (5) Understand what to work on next. Fetches issues from Jira, analyzes by priority/status/due date, and provides actionable prioritization." +--- + +# Summarize My Jira Issues + +Fetch all Jira issues assigned to the current user, summarize the workload, and provide prioritization recommendations. + +## Workflow + +1. **Get user identity** - Identify the current user's Jira account +2. **Fetch assigned issues** - Query Jira for all open issues assigned to the user +3. **Analyze workload** - Categorize issues by priority, status, and urgency +4. **Generate summary** - Present a clear overview with prioritization recommendations + +## Step 1: Get User Identity and Cloud ID + +First, get the user's Atlassian account info and accessible resources. + +``` +atlassianUserInfo() +getAccessibleAtlassianResources() +``` + +Store the `accountId` from user info and `cloudId` from resources for subsequent queries. + +## Step 2: Fetch Assigned Issues + +Query all open issues assigned to the current user using JQL. + +**Primary query - All open assigned issues:** +``` +searchJiraIssuesUsingJql( + cloudId="[cloudId]", + jql='assignee = currentUser() AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, duedate ASC', + maxResults=100, + fields=["summary", "status", "priority", "issuetype", "duedate", "created", "updated", "project", "labels"], + responseContentFormat="markdown" +) +``` + +**If pagination needed:** Use `nextPageToken` from results to fetch additional pages. + +**Optional - Recently completed (last 7 days):** +``` +searchJiraIssuesUsingJql( + cloudId="[cloudId]", + jql='assignee = currentUser() AND status IN (Done, Closed, Resolved) AND resolved >= -7d ORDER BY resolved DESC', + maxResults=20, + fields=["summary", "status", "priority", "resolved", "project"], + responseContentFormat="markdown" +) +``` + +## Step 3: Analyze Workload + +Categorize and analyze the fetched issues. + +### Priority Buckets + +Group issues into action categories: + +| Category | Criteria | Action | +|----------|----------|--------| +| 🔴 **Urgent** | Highest/High priority OR overdue OR blocked status | Address immediately | +| 🟡 **This Week** | Medium priority with due dates within 7 days | Plan for this week | +| 🟢 **Backlog** | Lower priority OR no due date | Schedule when capacity allows | + +### Workload Metrics + +Calculate: +- **Total open issues** - Overall workload size +- **Issues by status** - In Progress, To Do, Blocked, In Review +- **Issues by priority** - Highest, High, Medium, Low, Lowest +- **Overdue count** - Issues past due date +- **Due this week** - Issues due in next 7 days + +### Red Flags to Identify + +Flag these patterns: +- Issues blocked for >3 days +- High priority issues not started +- Multiple overdue items +- Too many items "In Progress" simultaneously (>3 suggests context switching) + +## Step 4: Generate Summary + +Present findings using this structure. + +### Summary Output Template + +```markdown +# Your Jira Workload Summary + +## At a Glance +- **Total Open Issues:** [count] +- **In Progress:** [count] | **Blocked:** [count] | **To Do:** [count] +- **Overdue:** [count] | **Due This Week:** [count] + +--- + +## 🔴 Priority 1: Urgent (Address Today) + +[List issues that are: +- Highest/High priority AND in progress or blocked +- Overdue regardless of priority +- Explicitly marked as blockers] + +| Issue | Summary | Status | Due | +|-------|---------|--------|-----| +| PROJ-123 | [summary] | In Progress | Overdue by 2d | + +**Why urgent:** [Brief explanation of why these need immediate attention] + +--- + +## 🟡 Priority 2: This Week + +[List issues that are: +- Medium-High priority with due dates within 7 days +- High priority not yet started] + +| Issue | Summary | Status | Due | +|-------|---------|--------|-----| +| PROJ-456 | [summary] | To Do | Mar 20 | + +**Recommendation:** [Suggested order or approach] + +--- + +## 🟢 Priority 3: Backlog + +[Remaining issues, grouped by project or type if helpful] + +| Issue | Summary | Priority | Status | +|-------|---------|----------|--------| +| PROJ-789 | [summary] | Medium | To Do | + +--- + +## ⚠️ Attention Needed + +[Flag any concerning patterns:] +- **Blocked issues:** [list any blocked items with notes on blockers if available] +- **Context switching risk:** You have [X] items in progress simultaneously +- **Aging items:** [Issues not updated in >14 days] + +--- + +## ✅ Recently Completed (Last 7 Days) + +[Brief list of completed work for context/motivation] + +- PROJ-111: [summary] +- PROJ-222: [summary] + +--- + +## Recommended Focus Order + +1. **First:** [Most urgent item with reason] +2. **Then:** [Next priority with reason] +3. **If time permits:** [Additional items] +``` + +## Tips for Quality Summaries + +**Be specific about priorities:** +- Don't just list by Jira priority - consider due dates and blockers +- Explain *why* something is urgent (overdue, blocking others, high business impact) + +**Make it actionable:** +- Suggest a specific order to tackle work +- Identify items that can be quick wins +- Flag items that need clarification or are blocked + +**Provide context:** +- Link to Jira issues directly +- Show status and due dates +- Mention recently completed work for morale + +**Adapt to workload size:** +- For <10 issues: List all individually +- For 10-30 issues: Group by priority/project +- For >30 issues: Summarize by category, highlight top 10 + +## Example Queries + +**All blocked issues:** +```jql +assignee = currentUser() AND status = Blocked +``` + +**Overdue issues:** +```jql +assignee = currentUser() AND duedate < now() AND status NOT IN (Done, Closed, Resolved) +``` + +**Due this week:** +```jql +assignee = currentUser() AND duedate >= startOfWeek() AND duedate <= endOfWeek() AND status NOT IN (Done, Closed, Resolved) +``` + +**High priority not started:** +```jql +assignee = currentUser() AND priority IN (Highest, High) AND status = "To Do" +``` + +**Stale issues (not updated in 14 days):** +```jql +assignee = currentUser() AND updated < -14d AND status NOT IN (Done, Closed, Resolved) +``` From 85b6a4709770015226407d678ee62ae3420e1980 Mon Sep 17 00:00:00 2001 From: Andrew Ronaldson Date: Wed, 18 Mar 2026 19:43:27 -0300 Subject: [PATCH 2/3] added skills --- .cursor/skills/summarize-pr-reviews/SKILL.md | 289 +++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 .cursor/skills/summarize-pr-reviews/SKILL.md diff --git a/.cursor/skills/summarize-pr-reviews/SKILL.md b/.cursor/skills/summarize-pr-reviews/SKILL.md new file mode 100644 index 0000000..c53bd52 --- /dev/null +++ b/.cursor/skills/summarize-pr-reviews/SKILL.md @@ -0,0 +1,289 @@ +--- +name: summarize-pr-reviews +description: "Summarize GitHub pull requests awaiting review from the current user. Use when the user asks to: (1) See their pending PR reviews, (2) Summarize PRs they need to review, (3) Get an overview of review requests, (4) Prioritize their code review queue, or (5) Understand what PRs are waiting for their review." +--- + +# Summarize My PR Review Queue + +Fetch all GitHub pull requests where the current user is requested as a reviewer, summarize the changes, and provide prioritization recommendations. + +## Workflow + +1. **Get user identity** - Identify the current GitHub user +2. **Search for review requests** - Query GitHub for PRs requesting the user's review +3. **Fetch PR details** - Get diff stats, description, and context for each PR +4. **Generate summary** - Present a clear overview with prioritization recommendations + +## Step 1: Get User Identity + +First, get the authenticated GitHub user's information. + +``` +get_me() +``` + +Store the `login` (username) for subsequent queries. + +## Step 2: Search for PRs Requesting Review + +Query GitHub for all open PRs where the user is requested as a reviewer. + +**Primary query - PRs awaiting your review:** +``` +search_issues( + query="is:pr is:open review-requested:@me", + sort="updated", + order="desc", + perPage=50 +) +``` + +**Alternative if @me doesn't work:** +``` +search_issues( + query="is:pr is:open review-requested:[username]", + sort="updated", + order="desc", + perPage=50 +) +``` + +**Optional - PRs you've already reviewed but have new changes:** +``` +search_issues( + query="is:pr is:open reviewed-by:[username] -review:approved", + sort="updated", + order="desc", + perPage=20 +) +``` + +## Step 3: Fetch PR Details + +For each PR found, fetch additional details to understand the scope of changes. + +**Get PR details:** +``` +get_pull_request( + owner="[owner]", + repo="[repo]", + pullNumber=[number] +) +``` + +**Get PR diff/files changed:** +``` +get_pull_request_files( + owner="[owner]", + repo="[repo]", + pullNumber=[number] +) +``` + +**Get existing reviews (to see review status):** +``` +get_pull_request_reviews( + owner="[owner]", + repo="[repo]", + pullNumber=[number] +) +``` + +Extract from each PR: +- Title and description +- Author +- Number of files changed +- Lines added/deleted +- Labels (especially priority labels) +- How long it's been open +- CI/check status +- Existing reviews and comments + +## Step 4: Analyze and Categorize + +### Size Categories + +Categorize PRs by scope of changes: + +| Size | Criteria | Review Time Estimate | +|------|----------|---------------------| +| 🟢 **Small** | <100 lines changed, <5 files | ~10-15 min | +| 🟡 **Medium** | 100-500 lines, 5-15 files | ~30-60 min | +| 🔴 **Large** | >500 lines or >15 files | 1+ hours | + +### Priority Signals + +Identify high-priority PRs: +- Has `priority`, `urgent`, `blocker`, or `critical` labels +- Has been open >3 days without review +- Author has pinged or requested re-review +- Blocking other work (mentioned in description) +- Has failing CI that needs investigation +- Is a security fix or hotfix + +### Complexity Indicators + +Note complexity factors: +- Multiple reviewers requested +- Many files across different areas +- New dependencies added +- Database migrations +- API changes +- Configuration changes + +## Step 5: Generate Summary + +Present findings using this structure. + +### Summary Output Template + +```markdown +# Your PR Review Queue + +## At a Glance +- **Total PRs Awaiting Review:** [count] +- **Small:** [count] | **Medium:** [count] | **Large:** [count] +- **Oldest Waiting:** [X days] + +--- + +## 🔴 Priority Reviews (Address First) + +[List PRs that are: +- Marked as urgent/priority/blocker +- Open >3 days without any review +- Security or hotfix PRs +- Blocking other team members] + +| PR | Repository | Author | Size | Waiting | Why Priority | +|----|------------|--------|------|---------|--------------| +| #123 | repo-name | @author | 🟢 Small | 5 days | Marked urgent, blocking release | + +### PR #123: [Title] +**Repository:** owner/repo +**Author:** @username +**Changes:** +50/-20 lines across 3 files + +**Summary of Changes:** +[Brief description of what the PR does based on title, description, and files changed] + +**Key files to review:** +- `src/components/Feature.tsx` - Main implementation +- `src/utils/helper.ts` - New utility function + +**Review notes:** +- [Any CI failures to investigate] +- [Any existing review comments to address] + +--- + +## 🟡 Standard Reviews + +[Remaining PRs in suggested review order] + +| PR | Repository | Author | Size | Waiting | Notes | +|----|------------|--------|------|---------|-------| +| #456 | other-repo | @dev | 🟡 Medium | 2 days | Feature addition | + +### PR #456: [Title] +**Repository:** owner/repo +**Author:** @username +**Changes:** +200/-50 lines across 8 files + +**Summary of Changes:** +[Brief description] + +**Key areas:** +- [Main component/feature affected] +- [Tests added/modified] + +--- + +## 🟢 Quick Reviews (Small PRs) + +[PRs that can be reviewed quickly - good for time blocks] + +| PR | Repository | Author | Changes | Description | +|----|------------|--------|---------|-------------| +| #789 | repo | @dev | +15/-5 | Fix typo in docs | + +--- + +## ⚠️ Needs Attention + +[Flag any concerning patterns:] +- **Stale PRs:** [PRs open >7 days without review] +- **Failed CI:** [PRs with failing checks] +- **Re-review requested:** [PRs you reviewed but have new commits] + +--- + +## Suggested Review Order + +Based on priority, size, and wait time: + +1. **#123** (repo-name) - Urgent, small, quick win +2. **#456** (other-repo) - Medium priority, been waiting 2 days +3. **#789** (repo) - Quick doc fix, 5 min review + +**Estimated total review time:** ~2 hours +``` + +## Tips for Quality Summaries + +**Understand the changes:** +- Read the PR description carefully +- Look at the file types changed to understand scope +- Note if tests are included + +**Identify what matters:** +- Focus on the "why" not just the "what" +- Highlight breaking changes or API modifications +- Note new dependencies or configuration changes + +**Make it actionable:** +- Suggest a specific review order +- Estimate review time for planning +- Flag PRs that can be quick wins + +**Provide context:** +- Link directly to each PR +- Show how long PRs have been waiting +- Note if CI is passing/failing + +**Adapt to queue size:** +- For <5 PRs: Detailed summary of each +- For 5-15 PRs: Group by priority, summarize key points +- For >15 PRs: Focus on top priorities, list others briefly + +## Common Search Queries + +**All PRs requesting your review:** +``` +is:pr is:open review-requested:@me +``` + +**PRs in a specific org:** +``` +is:pr is:open review-requested:@me org:patternfly +``` + +**PRs in a specific repo:** +``` +is:pr is:open review-requested:@me repo:owner/repo-name +``` + +**PRs with specific labels:** +``` +is:pr is:open review-requested:@me label:priority +``` + +**Draft PRs (for early feedback):** +``` +is:pr is:open draft:true review-requested:@me +``` + +**PRs you've reviewed that have new commits:** +``` +is:pr is:open reviewed-by:@me -review:approved +``` From f6f7b163a5bfbdc922d36a6fab4f095162bbae63 Mon Sep 17 00:00:00 2001 From: Andrew Ronaldson Date: Thu, 19 Mar 2026 08:34:38 -0300 Subject: [PATCH 3/3] Update summarize-issues skill to focus on Jira sprint issues and contributions. Enhanced description and workflow steps to prioritize active sprint tasks, fetch contributor issues, and provide a sprint-focused summary output. --- .cursor/skills/summarize-issues/SKILL.md | 244 +++++++++++++---------- 1 file changed, 137 insertions(+), 107 deletions(-) diff --git a/.cursor/skills/summarize-issues/SKILL.md b/.cursor/skills/summarize-issues/SKILL.md index 0ad5765..1daf949 100644 --- a/.cursor/skills/summarize-issues/SKILL.md +++ b/.cursor/skills/summarize-issues/SKILL.md @@ -1,18 +1,19 @@ --- name: summarize-issues -description: "Summarize Jira issues assigned to the current user and recommend priorities. Use when the user asks to: (1) See what's on their plate, (2) Summarize their assigned work, (3) Prioritize their issues or tasks, (4) Get an overview of their Jira backlog, or (5) Understand what to work on next. Fetches issues from Jira, analyzes by priority/status/due date, and provides actionable prioritization." +description: "Summarize Jira sprint issues and contributions for the current user. Use when the user asks to: (1) See what's left in the sprint, (2) Summarize their assigned work, (3) Prioritize sprint tasks, (4) See issues they're contributing to, or (5) Understand what to work on next. Focuses on active sprint work first, then shows contributor roles and backlog." --- # Summarize My Jira Issues -Fetch all Jira issues assigned to the current user, summarize the workload, and provide prioritization recommendations. +Fetch sprint issues assigned to or contributed by the current user, summarize the workload, and provide prioritization recommendations. ## Workflow 1. **Get user identity** - Identify the current user's Jira account -2. **Fetch assigned issues** - Query Jira for all open issues assigned to the user -3. **Analyze workload** - Categorize issues by priority, status, and urgency -4. **Generate summary** - Present a clear overview with prioritization recommendations +2. **Fetch sprint issues** - Query active sprint items (assigned + contributing) +3. **Fetch contributor issues** - Query issues where user is listed as contributor +4. **Analyze workload** - Categorize by sprint commitment vs contributions +5. **Generate summary** - Present sprint-focused overview with recommendations ## Step 1: Get User Identity and Cloud ID @@ -25,189 +26,218 @@ getAccessibleAtlassianResources() Store the `accountId` from user info and `cloudId` from resources for subsequent queries. -## Step 2: Fetch Assigned Issues +## Step 2: Fetch Sprint Issues -Query all open issues assigned to the current user using JQL. +Query issues in open sprints - these are the primary focus. -**Primary query - All open assigned issues:** +**Primary query - Sprint issues assigned to user:** ``` searchJiraIssuesUsingJql( cloudId="[cloudId]", - jql='assignee = currentUser() AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, duedate ASC', - maxResults=100, - fields=["summary", "status", "priority", "issuetype", "duedate", "created", "updated", "project", "labels"], + jql='assignee = currentUser() AND sprint in openSprints() AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, status ASC', + maxResults=50, + fields=["summary", "status", "priority", "issuetype", "duedate", "created", "updated", "project", "labels", "sprint"], responseContentFormat="markdown" ) ``` -**If pagination needed:** Use `nextPageToken` from results to fetch additional pages. - -**Optional - Recently completed (last 7 days):** +**Sprint issues completed this sprint:** ``` searchJiraIssuesUsingJql( cloudId="[cloudId]", - jql='assignee = currentUser() AND status IN (Done, Closed, Resolved) AND resolved >= -7d ORDER BY resolved DESC', + jql='assignee = currentUser() AND sprint in openSprints() AND status IN (Done, Closed, Resolved) ORDER BY resolved DESC', maxResults=20, fields=["summary", "status", "priority", "resolved", "project"], responseContentFormat="markdown" ) ``` -## Step 3: Analyze Workload +## Step 3: Fetch Contributor Issues + +Query issues where the user is listed as a contributor (using the "Contributor" or "Contributors" custom field). Run these in parallel with sprint queries. + +**Issues where user is a contributor (not assignee):** +``` +searchJiraIssuesUsingJql( + cloudId="[cloudId]", + jql='"Contributor[User Picker (multiple users)]" = currentUser() AND assignee != currentUser() AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, updated DESC', + maxResults=30, + fields=["summary", "status", "priority", "issuetype", "assignee", "updated", "project", "labels"], + responseContentFormat="markdown" +) +``` + +**Note:** The contributor field name varies by Jira instance. Common names: +- `"Contributor[User Picker (multiple users)]"` +- `"Contributors"` +- `cf[XXXXX]` (custom field ID) -Categorize and analyze the fetched issues. +If the first query fails, try alternate field names or ask the user for their Jira's contributor field name. + +## Step 4: Fetch Backlog (Brief) + +Only fetch a brief backlog summary - sprint work takes priority. + +**Non-sprint assigned issues (brief overview):** +``` +searchJiraIssuesUsingJql( + cloudId="[cloudId]", + jql='assignee = currentUser() AND (sprint is EMPTY OR sprint not in openSprints()) AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, updated DESC', + maxResults=10, + fields=["summary", "status", "priority", "issuetype", "updated", "project"], + responseContentFormat="markdown" +) +``` -### Priority Buckets +## Step 5: Analyze Workload -Group issues into action categories: +### Sprint Focus + +The primary analysis should be on sprint items: | Category | Criteria | Action | |----------|----------|--------| -| 🔴 **Urgent** | Highest/High priority OR overdue OR blocked status | Address immediately | -| 🟡 **This Week** | Medium priority with due dates within 7 days | Plan for this week | -| 🟢 **Backlog** | Lower priority OR no due date | Schedule when capacity allows | +| 🔴 **Sprint - In Progress** | Active sprint items being worked on | Complete these first | +| 🟡 **Sprint - To Do** | Sprint items not yet started | Start after in-progress items | +| 🟢 **Sprint - Done** | Completed this sprint | Track velocity | -### Workload Metrics +### Contributor Analysis -Calculate: -- **Total open issues** - Overall workload size -- **Issues by status** - In Progress, To Do, Blocked, In Review -- **Issues by priority** - Highest, High, Medium, Low, Lowest -- **Overdue count** - Issues past due date -- **Due this week** - Issues due in next 7 days +For issues where user is a contributor: -### Red Flags to Identify +| Category | Criteria | Action | +|----------|----------|--------| +| 👥 **Active Contributions** | In Progress items you're helping with | May need your input | +| 📋 **Pending Contributions** | To Do items you'll contribute to | Be aware of upcoming work | -Flag these patterns: -- Issues blocked for >3 days -- High priority issues not started -- Multiple overdue items -- Too many items "In Progress" simultaneously (>3 suggests context switching) +### Backlog (Brief) -## Step 4: Generate Summary +Only highlight backlog items that are: +- High priority and may need sprint inclusion +- Blocked or stale and need attention +- Quick wins that could be done if sprint work completes early -Present findings using this structure. +## Step 6: Generate Summary + +Present findings using this sprint-focused structure. ### Summary Output Template ```markdown -# Your Jira Workload Summary +# Sprint Summary -## At a Glance -- **Total Open Issues:** [count] -- **In Progress:** [count] | **Blocked:** [count] | **To Do:** [count] -- **Overdue:** [count] | **Due This Week:** [count] +## Sprint Status +- **Sprint Items Remaining:** [count] +- **In Progress:** [count] | **To Do:** [count] +- **Completed This Sprint:** [count] --- -## 🔴 Priority 1: Urgent (Address Today) +## 🎯 Your Sprint Commitment -[List issues that are: -- Highest/High priority AND in progress or blocked -- Overdue regardless of priority -- Explicitly marked as blockers] +### In Progress +[List sprint items currently being worked on] -| Issue | Summary | Status | Due | -|-------|---------|--------|-----| -| PROJ-123 | [summary] | In Progress | Overdue by 2d | +| Issue | Summary | Status | Updated | +|-------|---------|--------|---------| +| PROJ-123 | [summary] | In Progress | Today | -**Why urgent:** [Brief explanation of why these need immediate attention] +### To Do +[List sprint items not yet started] ---- +| Issue | Summary | Priority | +|-------|---------|----------| +| PROJ-456 | [summary] | High | -## 🟡 Priority 2: This Week +### ✅ Completed This Sprint +[Brief list of completed sprint work] -[List issues that are: -- Medium-High priority with due dates within 7 days -- High priority not yet started] - -| Issue | Summary | Status | Due | -|-------|---------|--------|-----| -| PROJ-456 | [summary] | To Do | Mar 20 | - -**Recommendation:** [Suggested order or approach] +- PROJ-111: [summary] +- PROJ-222: [summary] --- -## 🟢 Priority 3: Backlog +## 👥 Contributing To -[Remaining issues, grouped by project or type if helpful] +Issues where you're listed as a contributor (owned by others): -| Issue | Summary | Priority | Status | -|-------|---------|----------|--------| -| PROJ-789 | [summary] | Medium | To Do | +| Issue | Summary | Owner | Status | Updated | +|-------|---------|-------|--------|---------| +| PROJ-789 | [summary] | @owner | In Progress | Yesterday | ---- - -## ⚠️ Attention Needed - -[Flag any concerning patterns:] -- **Blocked issues:** [list any blocked items with notes on blockers if available] -- **Context switching risk:** You have [X] items in progress simultaneously -- **Aging items:** [Issues not updated in >14 days] +**Action needed:** [Note any contributor items that may need your input soon] --- -## ✅ Recently Completed (Last 7 Days) +## 📋 Backlog Highlights -[Brief list of completed work for context/motivation] +[Only show if relevant - keep brief] -- PROJ-111: [summary] -- PROJ-222: [summary] +**[count] items in backlog** (not in current sprint) + +Notable items: +- [Any high priority items that might need sprint inclusion] +- [Any blocked items needing attention] --- ## Recommended Focus Order -1. **First:** [Most urgent item with reason] -2. **Then:** [Next priority with reason] -3. **If time permits:** [Additional items] +1. **Now:** [Most urgent sprint item] +2. **Next:** [Second priority] +3. **Watch:** [Contributor items that may need input] ``` ## Tips for Quality Summaries -**Be specific about priorities:** -- Don't just list by Jira priority - consider due dates and blockers -- Explain *why* something is urgent (overdue, blocking others, high business impact) +**Sprint first:** +- Always lead with sprint commitment +- Sprint items are the primary deliverables +- Backlog is secondary context only -**Make it actionable:** -- Suggest a specific order to tackle work -- Identify items that can be quick wins -- Flag items that need clarification or are blocked +**Contributor awareness:** +- Highlight contributor items that are "In Progress" - you may be needed +- Note who owns each contributor issue +- Flag if contributor items are blocked waiting on you -**Provide context:** -- Link to Jira issues directly -- Show status and due dates -- Mention recently completed work for morale +**Keep backlog brief:** +- Only show top 5-10 backlog items +- Focus on items that might need sprint inclusion +- Don't overwhelm with full backlog listing -**Adapt to workload size:** -- For <10 issues: List all individually -- For 10-30 issues: Group by priority/project -- For >30 issues: Summarize by category, highlight top 10 +**Adapt to sprint state:** +- Early sprint: Focus on planning and getting started +- Mid sprint: Focus on progress and blockers +- Late sprint: Focus on completion and carryover risk ## Example Queries -**All blocked issues:** +**All sprint issues (any status):** +```jql +assignee = currentUser() AND sprint in openSprints() +``` + +**Sprint items at risk (not started, sprint half over):** ```jql -assignee = currentUser() AND status = Blocked +assignee = currentUser() AND sprint in openSprints() AND status = "To Do" ``` -**Overdue issues:** +**Contributor issues in progress:** ```jql -assignee = currentUser() AND duedate < now() AND status NOT IN (Done, Closed, Resolved) +"Contributor[User Picker (multiple users)]" = currentUser() AND status = "In Progress" ``` -**Due this week:** +**Contributor issues updated recently:** ```jql -assignee = currentUser() AND duedate >= startOfWeek() AND duedate <= endOfWeek() AND status NOT IN (Done, Closed, Resolved) +"Contributor[User Picker (multiple users)]" = currentUser() AND updated >= -3d ``` -**High priority not started:** +**High priority backlog (not in sprint):** ```jql -assignee = currentUser() AND priority IN (Highest, High) AND status = "To Do" +assignee = currentUser() AND sprint is EMPTY AND priority IN (Highest, High) AND status NOT IN (Done, Closed, Resolved) ``` -**Stale issues (not updated in 14 days):** +**Backlog items not updated in 30 days:** ```jql -assignee = currentUser() AND updated < -14d AND status NOT IN (Done, Closed, Resolved) +assignee = currentUser() AND sprint is EMPTY AND updated < -30d AND status NOT IN (Done, Closed, Resolved) ```