|
| 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__jira__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 | + "additional_fields": "{\"labels\": [\"team:ambient\"]}" |
| 126 | +} |
| 127 | +``` |
| 128 | + |
| 129 | +Then **update the issue** to set the Atlassian Team field (must be done as a separate update call — cannot be set on create): |
| 130 | + |
| 131 | +```json |
| 132 | +{ |
| 133 | + "issue_key": "[CREATED_ISSUE_KEY]", |
| 134 | + "fields": "{}", |
| 135 | + "additional_fields": "{\"customfield_10001\": \"ec74d716-af36-4b3c-950f-f79213d08f71-1917\"}" |
| 136 | +} |
| 137 | +``` |
| 138 | + |
| 139 | +Then **add to sprint** (sprint field `customfield_10020` is screen-restricted, use the sprint API instead): |
| 140 | + |
| 141 | +```json |
| 142 | +mcp__jira__jira_add_issues_to_sprint({ |
| 143 | + "sprint_id": "[ACTIVE_SPRINT_ID]", |
| 144 | + "issue_keys": "[CREATED_ISSUE_KEY]" |
| 145 | +}) |
| 146 | +``` |
| 147 | + |
| 148 | +To find the active sprint ID, use: |
| 149 | +```json |
| 150 | +mcp__jira__jira_get_sprints_from_board({ "board_id": "1115", "state": "active" }) |
| 151 | +``` |
| 152 | + |
| 153 | +### 6. Report Success |
| 154 | + |
| 155 | +After creation, report: |
| 156 | + |
| 157 | +``` |
| 158 | +✅ Created: [ISSUE_KEY] |
| 159 | +🔗 Link: https://redhat.atlassian.net/browse/[ISSUE_KEY] |
| 160 | +
|
| 161 | +Summary: [summary] |
| 162 | +Component: Agentic |
| 163 | +Team: Ambient team |
| 164 | +Sprint: [sprint name] |
| 165 | +
|
| 166 | +📋 Agent Cold-Start Ready: Yes |
| 167 | +``` |
| 168 | + |
| 169 | +## Examples |
| 170 | + |
| 171 | +### Quick Story (will prompt for more context) |
| 172 | + |
| 173 | +``` |
| 174 | +/jira.log Add dark mode toggle to session viewer |
| 175 | +``` |
| 176 | + |
| 177 | +The command will then ask you for acceptance criteria, relevant files, etc. |
| 178 | + |
| 179 | +### Detailed Story (agent-ready) |
| 180 | + |
| 181 | +``` |
| 182 | +/jira.log Add dark mode toggle to session viewer |
| 183 | +
|
| 184 | +As a user, I want to toggle dark mode in the session viewer, so that I can reduce eye strain during long sessions. |
| 185 | +
|
| 186 | +Acceptance: |
| 187 | +- Toggle persists across sessions (localStorage) |
| 188 | +- Respects system preference by default |
| 189 | +- Smooth transition animation |
| 190 | +
|
| 191 | +Repo: vTeam |
| 192 | +Files: components/frontend/src/components/session-viewer/ |
| 193 | +Related: RHOAIENG-38000 (design system tokens) |
| 194 | +
|
| 195 | +Constraints: |
| 196 | +- Use existing Shadcn theme tokens, don't create new colours |
| 197 | +- Must work with existing syntax highlighting |
| 198 | +
|
| 199 | +Tests: |
| 200 | +- Unit test for toggle logic |
| 201 | +- E2E test for persistence |
| 202 | +``` |
| 203 | + |
| 204 | +### Bug Report |
| 205 | + |
| 206 | +``` |
| 207 | +/jira.log [Bug] Session list doesn't refresh after deletion |
| 208 | +
|
| 209 | +Steps: |
| 210 | +1. Create a session |
| 211 | +2. Delete the session via UI |
| 212 | +3. Observe the list |
| 213 | +
|
| 214 | +Expected: Session disappears from list |
| 215 | +Actual: Session remains until page refresh |
| 216 | +
|
| 217 | +Repo: vTeam |
| 218 | +Files: components/frontend/src/components/session-list/ |
| 219 | +Browser: Chrome 120, Firefox 121 |
| 220 | +
|
| 221 | +Fix should invalidate the React Query cache after mutation. |
| 222 | +``` |
| 223 | + |
| 224 | +### Tech Debt Task |
| 225 | + |
| 226 | +``` |
| 227 | +/jira.log [Task] Migrate session queries to use React Query v5 patterns |
| 228 | +
|
| 229 | +Current queries use deprecated `onSuccess` callbacks. |
| 230 | +Need to migrate to the new `select` and mutation patterns. |
| 231 | +
|
| 232 | +Repo: vTeam |
| 233 | +Files: |
| 234 | +- components/frontend/src/services/queries/sessions.ts |
| 235 | +- components/frontend/src/hooks/ |
| 236 | +
|
| 237 | +Constraints: |
| 238 | +- Don't change API contracts |
| 239 | +- Maintain backwards compatibility with existing components |
| 240 | +
|
| 241 | +Tests: |
| 242 | +- Existing tests should pass |
| 243 | +- Add test for cache invalidation edge case |
| 244 | +``` |
| 245 | + |
| 246 | +## Field Reference (Jira Cloud — redhat.atlassian.net) |
| 247 | + |
| 248 | +| Field | Value | Notes | |
| 249 | +|-------|-------|-------| |
| 250 | +| Project | RHOAIENG | Red Hat OpenShift AI Engineering | |
| 251 | +| Component | Agentic | Pre-filled | |
| 252 | +| Team | Ambient team | `customfield_10001` = `ec74d716-af36-4b3c-950f-f79213d08f71-1917` (Atlassian Team type, set via update) | |
| 253 | +| Sprint | Active sprint | Use `jira_add_issues_to_sprint` with board `1115` | |
| 254 | +| Label | `team:ambient` | Set on create via `additional_fields` | |
| 255 | +| Issue Type | Story | Default, can override with [Bug], [Task] | |
| 256 | +| Priority | Normal | Default | |
| 257 | +| Browse URL | `https://redhat.atlassian.net/browse/` | NOT `issues.redhat.com` (that was on-prem) | |
| 258 | +| Board | `1115` (scrum) / `1109` (kanban) | "AI Driven Development" | |
| 259 | + |
| 260 | +## Agent Cold-Start Checklist |
| 261 | + |
| 262 | +For a Jira to be immediately actionable by an agent, ensure: |
| 263 | + |
| 264 | +| Element | Why It Matters | |
| 265 | +|---------|----------------| |
| 266 | +| **User Story** | Agent understands the "who" and "why" | |
| 267 | +| **Acceptance Criteria** | Clear definition of done, testable outcomes | |
| 268 | +| **Repo + File Paths** | Agent knows where to look/edit | |
| 269 | +| **Related Links** | Context from design docs, related PRs | |
| 270 | +| **Constraints** | Prevents agent from over-engineering or going off-piste | |
| 271 | +| **Testing Requirements** | Agent knows what coverage is expected | |
| 272 | +| **Bug Repro Steps** | Agent can verify the fix works | |
| 273 | + |
| 274 | +### What Makes a Good vs Bad Jira for Agents |
| 275 | + |
| 276 | +**❌ Bad (vague, agent will struggle):** |
| 277 | +> "Fix the login bug" |
| 278 | +
|
| 279 | +**✅ Good (agent can start immediately):** |
| 280 | +> "Fix login redirect loop on Safari" |
| 281 | +> |
| 282 | +> **Steps**: 1. Open Safari 2. Click Login 3. Observe infinite redirect |
| 283 | +> **Expected**: Redirect to dashboard |
| 284 | +> **Actual**: Loops back to login |
| 285 | +> **Repo**: vTeam |
| 286 | +> **Files**: `components/frontend/src/app/auth/callback/` |
| 287 | +> **Constraint**: Don't break Chrome/Firefox flows |
| 288 | +> **Test**: Add E2E test for Safari user-agent |
| 289 | +
|
| 290 | +## Context |
| 291 | + |
| 292 | +$ARGUMENTS |
0 commit comments