Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 22 additions & 16 deletions hyperfleet-jira/commands/team-weekly-update.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: "Weekly team update - a list of closed issues(Story,Task,Bug) in the last 7 days with a nested display : activity type -> Epic -> Story/Task/Bug in one team"
description: "Weekly team update - a list of closed issues(Story,Task,Bug) in the last 7 days with a nested display in one team"
allowed-tools: Bash
argument-hint: "[project-key] [team-key]"
---
Expand Down Expand Up @@ -39,7 +39,7 @@ Summary of team progress over the past week, focusing on closed issues classifie
For each activity type below, follow this three-step process to fetch issues and their parent Epic information:

**Step 1**: Get list of closed issue keys
**Step 2**: For each issue, fetch full details including epic link (customfield_12311140) and summary
**Step 2**: For each issue, fetch full details including parent epic (fields.parent) and summary
**Step 3**: Group issues by their parent Epic and fetch Epic details

### Activity Types to Process:
Expand All @@ -58,7 +58,7 @@ ACTIVITY_TYPES=(

# For each activity type, fetch closed issues:
for activity_type in "${ACTIVITY_TYPES[@]}"; do
jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and status changed to "closed" during (-7d,now()) and cf[12320040] = "'"$activity_type"'" ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null
jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and resolution = Done AND status changed to closed during (-7d, now()) and customfield_10464 = "'"$activity_type"'" ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Category: Inconsistency

The JQL here mixes and (lowercase) with AND (uppercase) in the same query:

...and type in (Story,Task,Bug) and resolution = Done AND status changed to closed...

Pick one casing and stick with it — either all lowercase and or all uppercase AND. Same
applies to line 70.

# Process each issue as described in "For Each Issue Retrieved" section below
done
```
Expand All @@ -67,23 +67,26 @@ Also check for issues without an activity type:

```bash
# Issues without activity type
jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and status changed to "closed" during (-7d,now()) and cf[12320040] is EMPTY ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null
jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and resolution = Done AND status changed to closed during (-7d, now()) and customfield_10464 is EMPTY ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null
```

### For Each Issue Retrieved:

Get full issue details including epic link:
Get full issue details including parent epic:
```bash
jira issue view <ISSUE_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fields.summary, epicKey: .fields.customfield_12311140, status: .fields.status.name}'
jira issue view <ISSUE_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fields.summary, epicKey: .fields.parent.key, epicSummary: .fields.parent.fields.summary, epicStatus: .fields.parent.fields.status.name, status: .fields.status.name, type: .fields.issuetype.name}'
```

Note: If parent is null, the issue has no parent epic.

### For Each Unique Epic Key:

Get epic details:
1. Get epic details:
```bash
jira issue view <EPIC_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fields.summary, status: .fields.status.name, type: .fields.issuetype.name}'
```

2. Calucate the Epic complete_ratio:
complete_ratio = the number of Done childeren issues / total number of children issue * 100
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Problem:
The PR adds a complete_ratio calculation formula (Done children / total children * 100) but
provides no command or instructions for how to actually query the number of children an epic
has. The "For Each Unique Epic Key" section fetches epic details (key, summary, status, type)
but never fetches the epic's children. An implementer following these instructions would have
no way to compute the ratio.

The complete_ratio formula is defined here but there's no command to actually query the
epic's children. The epic details command only fetches the epic's own metadata — you'd need
something like:

# Get all children of the epic and their resolution status
jira issue list -q '"parent" = <EPIC_KEY>' --columns KEY,STATUS --plain --no-headers
2>/dev/null

Then count how many have resolution = Done vs total to compute the ratio. Without this step,
the ratio can't be calculated.


## Output Format

Expand All @@ -94,28 +97,31 @@ jira issue view <EPIC_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fiel

### Issues Grouped by Activity Type, then by Parent Epic

For each activity type, group issues by their parent Epic and display in this nested structure:
For each activity type, please group issues by their parent Epic and display in this nested structure: Activity type -> Epic -> Story/Task/Bug

**Activity Type Name** (count)

**Epic: [EPIC-KEY] - [Epic Summary]** (Status: [Epic Status])
**Epic: [EPIC-KEY] - [Epic Summary]** (Status: [Epic Status], Done/Total, complete_ratio)
- [ISSUE-KEY]: [Issue Summary]
- [ISSUE-KEY]: [Issue Summary]

**Epic: [EPIC-KEY2] - [Epic Summary]** (Status: [Epic Status])
**Epic: [EPIC-KEY2] - [Epic Summary]** (Status: [Epic Status],Done/Total, complete_ratio)
- [ISSUE-KEY]: [Issue Summary]

**No Parent Epic**
- [ISSUE-KEY]: [Issue Summary]


**No Parent Epic**
- [ISSUE-KEY]: [ISSUE-TYPE]: [Issue Summary]
- [ISSUE-KEY]: [ISSUE-TYPE]: [Issue Summary]

Example:

**Quality / Stability / Reliability** (21 issues)

**Epic: HYPERFLEET-402 - E2E Test Automation Framework for CLM Components - MVP** (Status: Closed)
**Epic: HYPERFLEET-402 - E2E Test Automation Framework for CLM Components - MVP** (Status: Closed, 90%)
- HYPERFLEET-680: Migrate from kubectl CLI to Kubernetes client-go Library for E2E Testing
- HYPERFLEET-532: E2E Test Case Automation Run Strategy and Resource Management

**No Parent Epic**
- HYPERFLEET-682: Adapter1 and Adapter2 not reporting correct conditions and status
- HYPERFLEET-672: Adapter Helm chart: RabbitMQ exchange_type missing from broker config
- HYPERFLEET-682: [Bug] Adapter1 and Adapter2 not reporting correct conditions and status
- HYPERFLEET-672: [Story] Adapter Helm chart: RabbitMQ exchange_type missing from broker config