Skip to content

Commit 131be9a

Browse files
authored
Merge branch 'main' into ambient/bug/rhoaieng-46360
2 parents 0c7c0ae + e050c32 commit 131be9a

File tree

344 files changed

+27573
-19300
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

344 files changed

+27573
-19300
lines changed

.claude/commands/jira.log.md

Lines changed: 273 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
---
2+
description: Log a new Jira issue to RHOAIENG with Team (Ambient team) and Component (Agentic) pre-filled.
3+
---
4+
5+
## User Input
6+
7+
```text
8+
$ARGUMENTS
9+
```
10+
11+
You **MUST** consider the user input before proceeding (if not empty).
12+
13+
## Goal
14+
15+
Create a new Jira Story in the RHOAIENG project with the correct Team and Component pre-filled for the Ambient team.
16+
17+
## Execution Steps
18+
19+
### 1. Parse User Input
20+
21+
Extract the following from `$ARGUMENTS`:
22+
23+
- **Summary** (required): The title/summary of the issue
24+
- **Description** (optional): Detailed description of the work
25+
- **Issue Type** (optional): Defaults to `Story`, but can be `Bug` or `Task`. Tasks are tech debt related and not user facing
26+
- **Priority** (optional): Defaults to `Normal`
27+
28+
If the user provides a simple sentence, use it as the summary. If they provide multiple lines, use the first line as summary and the rest as description.
29+
30+
### 2. Gather Cold-Start Context
31+
32+
**IMPORTANT**: To make this Jira actionable by an agent, gather the following context. Ask the user for any missing critical info:
33+
34+
**Required for Stories:**
35+
- What is the user-facing goal? (As a [user], I want [X], so that [Y])
36+
- What are the acceptance criteria? (How do we know it's done)
37+
- Which repo/codebase? (e.g., `vTeam`, `ambient-cli`)
38+
39+
**Required for Bugs:**
40+
- Steps to reproduce
41+
- Expected vs actual behaviour
42+
- Environment/browser info if relevant
43+
44+
**Helpful for all types:**
45+
- Relevant file paths or components (e.g., `components/frontend/src/...`)
46+
- Related issues/PRs/design docs
47+
- Screenshots or mockups (as links)
48+
- Constraints or out-of-scope items
49+
- Testing requirements
50+
51+
### 3. Build Structured Description
52+
53+
Format the description using this **agent-friendly template**:
54+
55+
```markdown
56+
## Overview
57+
[One paragraph summary of what needs to be done and why]
58+
59+
## User Story (for Stories)
60+
As a [type of user], I want [goal], so that [benefit].
61+
62+
## Acceptance Criteria
63+
- [ ] [Criterion 1]
64+
- [ ] [Criterion 2]
65+
- [ ] [Criterion 3]
66+
67+
## Technical Context
68+
**Repo**: [repo name or URL]
69+
**Relevant Paths**:
70+
- `path/to/relevant/file.ts`
71+
- `path/to/another/area/`
72+
73+
## Related Links
74+
- Design: [link if any]
75+
- Related Issues: [RHOAIENG-XXXX]
76+
- PR: [link if any]
77+
78+
## Constraints
79+
- [What NOT to do]
80+
- [Boundaries to respect]
81+
82+
## Testing Requirements
83+
- [ ] Unit tests for [X]
84+
- [ ] E2E test for [Y]
85+
86+
## Bug Details (for Bugs only)
87+
**Steps to Reproduce**:
88+
1. Step 1
89+
2. Step 2
90+
91+
**Expected**: [what should happen]
92+
**Actual**: [what actually happens]
93+
**Environment**: [browser/OS if relevant]
94+
```
95+
96+
### 4. Confirm Details
97+
98+
Before creating the issue, confirm with the user:
99+
100+
```
101+
📋 About to create RHOAIENG Jira:
102+
103+
**Summary**: [extracted summary]
104+
**Type**: Story
105+
**Component**: Agentic
106+
**Team**: Ambient team
107+
108+
**Description Preview**:
109+
[Show first 500 chars of formatted description]
110+
111+
This description is structured for agent cold-start. Shall I create this issue? (yes/no/edit)
112+
```
113+
114+
### 5. Create the Jira Issue
115+
116+
Use the `mcp_mcp-atlassian_jira_create_issue` tool with:
117+
118+
```json
119+
{
120+
"project_key": "RHOAIENG",
121+
"summary": "[user provided summary]",
122+
"issue_type": "Story",
123+
"description": "[structured description from template]",
124+
"components": "Agentic"
125+
}
126+
```
127+
128+
Then **update the issue** to set the Team field (must be done as a separate update call):
129+
130+
```json
131+
{
132+
"issue_key": "[CREATED_ISSUE_KEY]",
133+
"fields": {
134+
"customfield_12313240": "6290"
135+
}
136+
}
137+
```
138+
139+
### 6. Report Success
140+
141+
After creation, report:
142+
143+
```
144+
✅ Created: [ISSUE_KEY]
145+
🔗 Link: https://issues.redhat.com/browse/[ISSUE_KEY]
146+
147+
Summary: [summary]
148+
Component: Agentic
149+
Team: Ambient team
150+
151+
📋 Agent Cold-Start Ready: Yes
152+
```
153+
154+
## Examples
155+
156+
### Quick Story (will prompt for more context)
157+
158+
```
159+
/jira.log Add dark mode toggle to session viewer
160+
```
161+
162+
The command will then ask you for acceptance criteria, relevant files, etc.
163+
164+
### Detailed Story (agent-ready)
165+
166+
```
167+
/jira.log Add dark mode toggle to session viewer
168+
169+
As a user, I want to toggle dark mode in the session viewer, so that I can reduce eye strain during long sessions.
170+
171+
Acceptance:
172+
- Toggle persists across sessions (localStorage)
173+
- Respects system preference by default
174+
- Smooth transition animation
175+
176+
Repo: vTeam
177+
Files: components/frontend/src/components/session-viewer/
178+
Related: RHOAIENG-38000 (design system tokens)
179+
180+
Constraints:
181+
- Use existing Shadcn theme tokens, don't create new colours
182+
- Must work with existing syntax highlighting
183+
184+
Tests:
185+
- Unit test for toggle logic
186+
- E2E test for persistence
187+
```
188+
189+
### Bug Report
190+
191+
```
192+
/jira.log [Bug] Session list doesn't refresh after deletion
193+
194+
Steps:
195+
1. Create a session
196+
2. Delete the session via UI
197+
3. Observe the list
198+
199+
Expected: Session disappears from list
200+
Actual: Session remains until page refresh
201+
202+
Repo: vTeam
203+
Files: components/frontend/src/components/session-list/
204+
Browser: Chrome 120, Firefox 121
205+
206+
Fix should invalidate the React Query cache after mutation.
207+
```
208+
209+
### Tech Debt Task
210+
211+
```
212+
/jira.log [Task] Migrate session queries to use React Query v5 patterns
213+
214+
Current queries use deprecated `onSuccess` callbacks.
215+
Need to migrate to the new `select` and mutation patterns.
216+
217+
Repo: vTeam
218+
Files:
219+
- components/frontend/src/services/queries/sessions.ts
220+
- components/frontend/src/hooks/
221+
222+
Constraints:
223+
- Don't change API contracts
224+
- Maintain backwards compatibility with existing components
225+
226+
Tests:
227+
- Existing tests should pass
228+
- Add test for cache invalidation edge case
229+
```
230+
231+
## Field Reference
232+
233+
| Field | Value | Notes |
234+
|-------|-------|-------|
235+
| Project | RHOAIENG | Red Hat OpenShift AI Engineering |
236+
| Component | Agentic | Pre-filled |
237+
| Team | Ambient team | Custom field `customfield_12313240` = `6290` |
238+
| Issue Type | Story | Default, can override with [Bug], [Task] |
239+
| Priority | Normal | Default |
240+
241+
## Agent Cold-Start Checklist
242+
243+
For a Jira to be immediately actionable by an agent, ensure:
244+
245+
| Element | Why It Matters |
246+
|---------|----------------|
247+
| **User Story** | Agent understands the "who" and "why" |
248+
| **Acceptance Criteria** | Clear definition of done, testable outcomes |
249+
| **Repo + File Paths** | Agent knows where to look/edit |
250+
| **Related Links** | Context from design docs, related PRs |
251+
| **Constraints** | Prevents agent from over-engineering or going off-piste |
252+
| **Testing Requirements** | Agent knows what coverage is expected |
253+
| **Bug Repro Steps** | Agent can verify the fix works |
254+
255+
### What Makes a Good vs Bad Jira for Agents
256+
257+
**❌ Bad (vague, agent will struggle):**
258+
> "Fix the login bug"
259+
260+
**✅ Good (agent can start immediately):**
261+
> "Fix login redirect loop on Safari"
262+
>
263+
> **Steps**: 1. Open Safari 2. Click Login 3. Observe infinite redirect
264+
> **Expected**: Redirect to dashboard
265+
> **Actual**: Loops back to login
266+
> **Repo**: vTeam
267+
> **Files**: `components/frontend/src/app/auth/callback/`
268+
> **Constraint**: Don't break Chrome/Firefox flows
269+
> **Test**: Add E2E test for Safari user-agent
270+
271+
## Context
272+
273+
$ARGUMENTS

.github/workflows/amber-auto-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
steps:
2626
- name: Checkout PR head
27-
uses: actions/checkout@v5
27+
uses: actions/checkout@v6
2828
with:
2929
repository: ${{ github.event.pull_request.head.repo.full_name }}
3030
ref: ${{ github.event.pull_request.head.ref }}

.github/workflows/amber-dependency-sync.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818

1919
steps:
2020
- name: Checkout repository
21-
uses: actions/checkout@v5
21+
uses: actions/checkout@v6
2222
with:
2323
ref: main
2424
token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/amber-issue-handler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
4646
steps:
4747
- name: Checkout repository
48-
uses: actions/checkout@v4
48+
uses: actions/checkout@v6
4949
with:
5050
fetch-depth: 0
5151

.github/workflows/backend-unit-tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ on:
2525
pull_request:
2626
paths:
2727
- '.github/workflows/backend-unit-tests.yml'
28-
- './components/backend/**'
28+
- 'components/backend/**'
2929
- '!**/*.md'
3030

3131
concurrency:
@@ -39,7 +39,7 @@ jobs:
3939

4040
steps:
4141
- name: Checkout code
42-
uses: actions/checkout@v4
42+
uses: actions/checkout@v6
4343

4444
- name: Create reports directory
4545
shell: bash
@@ -89,7 +89,7 @@ jobs:
8989
9090
- name: Upload HTML Report
9191
id: upload
92-
uses: actions/upload-artifact@v4
92+
uses: actions/upload-artifact@v6
9393
if: (!cancelled())
9494
with:
9595
name: ${{ steps.name_gen.outputs.REPORT_NAME }}

.github/workflows/claude-code-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131

3232
steps:
3333
- name: Checkout PR head
34-
uses: actions/checkout@v5
34+
uses: actions/checkout@v6
3535
with:
3636
repository: ${{ github.event.pull_request.head.repo.full_name }}
3737
ref: ${{ github.event.pull_request.head.ref }}

.github/workflows/claude.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3939

4040
- name: Checkout repository (fork-compatible)
41-
uses: actions/checkout@v5
41+
uses: actions/checkout@v6
4242
with:
4343
repository: ${{ github.event.issue.pull_request && steps.pr-info.outputs.is_fork == 'true' && format('{0}/{1}', steps.pr-info.outputs.pr_head_owner, steps.pr-info.outputs.pr_head_repo) || github.repository }}
4444
ref: ${{ github.event.issue.pull_request && steps.pr-info.outputs.pr_head_ref || github.ref }}

0 commit comments

Comments
 (0)