Skip to content

Commit c69d499

Browse files
Merge pull request #53 from calfonso/outcome-refinement
Adds an outcome-refinement command to create a meeting agenda outlining what is important to discuss as a group.
2 parents 681ca28 + 76fbbeb commit c69d499

File tree

4 files changed

+219
-0
lines changed

4 files changed

+219
-0
lines changed

.claude-plugin/marketplace.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@
3838
"name": "prow-job",
3939
"source": "./plugins/prow-job",
4040
"description": "A plugin to analyze and inspect Prow CI job results"
41+
},
42+
{
43+
"name": "agendas",
44+
"source": "./plugins/agendas",
45+
"description": "A plugin to create various meeting agendas"
4146
}
4247
]
4348
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "agendas",
3+
"description": "A plugin to create various meeting agendas",
4+
"version": "0.0.1",
5+
"author": {
6+
"name": "github.com/openshift-eng"
7+
}
8+
}

plugins/agendas/README.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Agendas Plugin
2+
3+
Generate structured meeting agendas to streamline team collaboration and decision-making processes.
4+
5+
## Features
6+
7+
- 📋 **Outcome Refinement Agendas** - Analyze OCPSTRAT outcome issues and generate structured refinement meeting agendas
8+
- 🚨 **Issue Hygiene Detection** - Automatically identify missing assignments, incorrect issue types, and other routine problems
9+
- 📊 **Team Overload Analysis** - Detect component teams that may be overloaded based on issue assignments
10+
-**Age-Based Prioritization** - Flag outcomes that have been open too long or stuck in "New" status
11+
-**Actionable Output** - Ready-to-use Markdown agendas that can be copied directly into Confluence
12+
13+
## Prerequisites
14+
15+
- Claude Code installed
16+
- Jira MCP server configured (same as Jira plugin)
17+
18+
### Setting up Jira MCP Server
19+
20+
```bash
21+
# Add the Atlassian MCP server
22+
claude mcp add atlassian npx @modelcontextprotocol/server-atlassian
23+
```
24+
25+
OR you can use an already running Jira MCP Server:
26+
27+
```bash
28+
# Add the Atlassian MCP server
29+
claude mcp add --transport sse atlassian http https://localhost:8080/sse
30+
```
31+
32+
Configure your Jira credentials according to the [Atlassian MCP documentation](https://github.com/modelcontextprotocol/servers/tree/main/src/atlassian).
33+
34+
### Running Jira MCP Server locally with podman
35+
36+
```bash
37+
# Start the atlassian mcp server using podman
38+
podman run -i --rm -p 8080:8080 -e "JIRA_URL=https://issues.redhat.com" -e "JIRA_USERNAME" -e "JIRA_API_TOKEN" -e "JIRA_PERSONAL_TOKEN" -e "JIRA_SSL_VERIFY" ghcr.io/sooperset/mcp-atlassian:latest --transport sse --port 8080 -vv
39+
```
40+
41+
#### Getting Tokens
42+
You'll need to generate your own tokens:
43+
44+
- For JIRA API TOKEN, use https://id.atlassian.com/manage-profile/security/api-tokens
45+
- For JIRA PERSONAL TOKEN, use https://issues.redhat.com/secure/ViewProfile.jspa?selectedTab=com.atlassian.pats.pats-plugin:jira-user-personal-access-tokens
46+
47+
## Installation
48+
49+
### From the OpenShift AI Helpers Marketplace
50+
51+
```bash
52+
# Add the marketplace (one-time setup)
53+
/plugin marketplace add https://raw.githubusercontent.com/openshift-eng/ai-helpers/main/marketplace.json
54+
55+
# Install the plugin
56+
/plugin install agendas
57+
```
58+
59+
### Manual Installation
60+
61+
```bash
62+
# Clone the repository
63+
git clone https://github.com/openshift-eng/ai-helpers.git
64+
65+
# Copy to Claude Code plugins directory
66+
cp -r ai-helpers/plugins/agendas ~/.claude/plugins/
67+
68+
# Enable the plugin
69+
/plugin enable agendas
70+
```
71+
72+
## Available Commands
73+
74+
### `/agendas:outcome-refinement` - Outcome Refinement Meeting Agenda
75+
76+
Analyze OCPSTRAT outcome issues and generate a structured meeting agenda for outcome refinement sessions. The command automatically identifies common issues that require human follow-up and organizes them into actionable discussion points.
77+
78+
**Usage:**
79+
```bash
80+
/agendas:outcome-refinement
81+
```
82+
83+
**What It Checks:**
84+
85+
The command analyzes outcome issues and flags:
86+
87+
- **Missing Assignments**: Outcomes without assignee, architect, QA contact, or doc contact
88+
- **Incorrect Child Issues**: Outcomes with non-Feature child issue types
89+
- **Status Mismatches**: Child issues being actively worked on while parent outcome shows wrong status
90+
- **Age Analysis**: Outcomes that have been open too long (especially in "New" status for over a year)
91+
- **Scope Concerns**: Outcomes with active child issues but open for years, indicating potential scope creep
92+
- **Team Overload**: Components commonly assigned across multiple outcomes, indicating team capacity issues
93+
94+
**Output Format:**
95+
96+
The command generates a ready-to-use Markdown agenda:
97+
98+
```markdown
99+
# Outcome Refinement Agenda
100+
**Outcome Issues**: [count]
101+
102+
## 🚨 Critical Issues ([count])
103+
- **[OCPSTRAT-1234]** BGP integration with public clouds - *Critical, needs immediate attention*
104+
- **[OCPSTRAT-1235]** Consistent Ingress/Egress into OpenShift clusters - *High, assign to team lead*
105+
106+
## 📝 Needs Clarification ([count])
107+
- **[OCPSTRAT-1238]** Missing architect
108+
- **[OCPSTRAT-1239]** Component team is overloaded
109+
- **[OCPSTRAT-1240]** Outcome has been open for years with no delivery
110+
111+
## 📋 Action Items
112+
- [ ] Set architect for OCPSTRAT-1236 to SME architect (immediate)
113+
- [ ] Schedule review for OCPSTRAT-1236 (this week)
114+
```
115+
116+
See [commands/outcome-refinement.md](commands/outcome-refinement.md) for full documentation.
117+
118+
## Troubleshooting
119+
120+
### "Could not find issues"
121+
- Verify you have access to OCPSTRAT project in Jira
122+
- Check that your Jira MCP server is properly configured
123+
- Ensure your credentials have permission to query the project
124+
125+
### Empty or incomplete agenda
126+
- Verify the JQL query is returning results
127+
- Check that the outcome issues have child issues
128+
- Ensure the date ranges are appropriate for your analysis
129+
130+
## Contributing
131+
132+
Contributions welcome! Please submit pull requests to the [ai-helpers repository](https://github.com/openshift-eng/ai-helpers).
133+
134+
## License
135+
136+
Apache-2.0
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
description: Analyze the list of JIRA outcome issues to prepare an outcome refinement meeting agenda.
3+
---
4+
5+
## Name
6+
agendas:outcome-refinement
7+
8+
## Synopsis
9+
```
10+
/agendas:outcome-refinement
11+
```
12+
13+
## Description
14+
The `agendas:outcome-refinement` command helps analyze the outcome issues and should be used to assist in preparting for outcome refinement collaboration sessions. It automatically checks for common issues that we observe that indicate follow-up actions are needed by humans. This command generates structured outcome refinement meeting agenda.
15+
16+
## Examples
17+
```bash
18+
/agendas:outcome-refinement
19+
```
20+
21+
## Implementation
22+
23+
The `agendas:outcome-refinement` command runs in three main phases:
24+
25+
### 🧩 Phase 1: Data Collection
26+
- Queries JIRA for outcome issues in the OCPSTRAT project that require work to be done, meaning the issue status is not closed or release pending.
27+
28+
### 🧠 Phase 2: Analysis & Processing
29+
- Flags routine hygiene issues to resolve with follow up actions.
30+
- People assignments (Assignee, Architect, QA Contact, Doc Contact) should all be filled in.
31+
- Outcome issues should only have Feature issue types as child issues.
32+
- Identified if child issue are actively being worked on but the outcome doesn't represent the right status.
33+
- Shows how long an outcome issue has been open and their corresponding priority.
34+
- Identifies incomplete or unclear issues that need clarification.
35+
- If and outcome issue has child issues that are actively being updated but the outcome has been open for a more than a year we should discuss the scope.
36+
- If an outcome has stayed in the new status for over a year, we should probably discuss whether it's a real outcome priority.
37+
- Looking at all the OCPSTRAT outcomes, if any specific component is commonly assigned to the child feature issues, this indicates an team overload, so we should discuss this.
38+
- Highlights risks, dependencies, and recommended next actions.
39+
40+
### 📋 Phase 3: Report Generation
41+
- Automatically generates a **structured outcome refinement meeting agenda** in Markdown format.
42+
- Includes discussion points, decision checklists, and action items.
43+
- Output can be copied directly into Confluence or shared with the team.
44+
45+
## Output Format
46+
47+
### Outcome Refinement Meeting Agenda
48+
49+
The command outputs a ready-to-use Markdown document that can be copied into Confluence or shared with your team.
50+
51+
```markdown
52+
# Outcome Refinement Agenda
53+
**Outcome Issues**: [count]
54+
55+
## 🚨 Critical Issues ([count])
56+
- **[OCPSTRAT-1234]** BGP integration with public clouds - *Critical, needs immediate attention*
57+
- **[OCPSTRAT-1235]** Consistent Ingress/Egress into OpenShift clusters across providers - *High, assign to team lead*
58+
59+
## 📝 Needs Clarification ([count])
60+
- **[OCPSTRAT-1238]** Missing architect
61+
- **[OCPSTRAT-1239]** Component team is overloaded
62+
- **[OCPSTRAT-1240]** Outcome has been open for years with no delivery
63+
64+
## 📋 Action Items
65+
- [ ] Set architect for OCPSTRAT-1236 to SME architect (immediate)
66+
- [ ] Schedule review for OCPSTRAT-1236 (this week)
67+
```
68+
69+
## Return Value
70+
- **Markdown Report**: Ready-to-use outcome refinement agenda with categorized issues and action items

0 commit comments

Comments
 (0)