.agents/commands/comet/create-jira-ticket.md
Create a new Jira ticket in the OPIK project following the standard template structure.
When the user wants to create a Jira ticket, gather the following information through conversation and then use the mcp_Jira_home_jira_create_issue tool to create the ticket.
mcp_Jira_home_jira_get_sprints_from_board with board ID 524.YYYY-MM-DD.Every Task or Story must have a parent epic. Follow this logic:
mcp_Jira_home_jira_search to find open epics in the OPIK project (JQL: project = OPIK AND issuetype = Epic AND status != Done ORDER BY updated DESC).AskUserQuestion to let the user pick by number.Set the parent via "parent": "OPIK-XXXX" in additional_fields.
After an assignee is chosen, also add that assignee's pod-<name> label alongside any other labels on the ticket.
pod-whale, pod-frontier, pod-andromeda, pod-air, pod-iberi.pod-<name> label automatically — no need to ask.AskUserQuestion to let the user pick the pod from the list above. Include a final "Skip (no pod label)" option.pod-* label.Ask the user to provide details for each section, then format the description using the template below.
## Description
[Brief overview of what needs to be done and why. Explain the context and motivation for this work.]
## User Story
As a [type of user], I want to [action/goal] so that I can [benefit/outcome].
## User Journey
[Describe the step-by-step flow of how a user will interact with this feature:]
1. User navigates to [location]
2. User clicks/interacts with [element]
3. System responds by [action]
4. User sees [result]
[Continue as needed...]
## Requirements
### Functional Requirements
[List the functional requirements - what the system should DO]
**1. [Requirement Category]**
- [Specific requirement]
- [Specific requirement]
**2. [Requirement Category]**
- [Specific requirement]
- [Specific requirement]
### Non-Functional Requirements
[List non-functional requirements - performance, security, scalability, etc.]
- [Requirement]
- [Requirement]
## Acceptance Criteria
[Checklist of criteria that must be met for the ticket to be considered complete]
- [ ] [Criterion 1]
- [ ] [Criterion 2]
- [ ] [Criterion 3]
- [ ] No lint errors or TypeScript errors (if applicable)
- [ ] Unit tests added (if applicable)
- [ ] Documentation updated (if applicable)
pod-<name> label. If uncertain, ask the user to pick from the known pods (see Assignee Pod Label).Once all information is gathered, use the Jira MCP tool:
mcp_Jira_home_jira_create_issue(
project_key="OPIK",
summary="[PREFIX] Title of the ticket",
issue_type="Story|Task|Bug|Epic",
description="[Formatted description using template above]",
additional_fields={
"priority": {"name": "Medium"},
"labels": ["label1", "label2"],
"customfield_10028": <fibonacci_number>,
"customfield_10020": <sprint_id>,
"duedate": "YYYY-MM-DD",
"parent": "OPIK-670" // only for tech debt tickets without another epic
}
)
customfield_10028 directly (the story_points alias does NOT work at creation time)customfield_10020 with the sprint ID (a plain number). Look up sprints via mcp_Jira_home_jira_get_sprints_from_board (board ID 524), filter by "Opik Sprint" prefix, and pick the active or next future sprint based on user choice.duedate with format YYYY-MM-DD. Calculate relative to today's date."parent": "OPIK-XXX" (plain string, not an object) when creating under an epic.After creating the ticket:
mcp_Jira_home_jira_get_issue to check the ticket's status. A Jira automation will move it to BACKLOG status automatically.AskUserQuestion tool (not inline text) to prompt: "The ticket is now in Backlog. Would you like me to move it to TO DO?"mcp_Jira_home_jira_transition_issue to move it to "TO DO".Use these prefixes in the summary based on the work area:
[FE] - Frontend changes[BE] - Backend changes[SDK] - SDK changes (Python or TypeScript)[DOCS] - Documentation updates[INFRA] - Infrastructure/DevOps changesAfter successfully creating a ticket, always display the ticket key as a clickable markdown link in the confirmation message:
[OPIK-{number}](https://comet-ml.atlassian.net/browse/OPIK-{number})
For example, if the created ticket key is OPIK-5316, display:
[OPIK-5316](https://comet-ml.atlassian.net/browse/OPIK-5316)
Never display the ticket key as plain text — always wrap it in a markdown link to the Jira ticket URL.
OPIK- [ ] syntax