-
Determine issue type from $ARGUMENTS or by asking the user.
-
Get the project version — read build.gradle and extract the version field (e.g. 0.15.0-rc).
-
Gather context — investigate the codebase thoroughly to understand the issue. Use multiple approaches:
- Search for relevant code, configs, logs, tests, and error messages
- Read related source files to understand current behavior
- Check recent commits and changes that might be related
- Look at existing tests to understand expected behavior
- Consider the issue from different angles: user perspective, developer perspective, system perspective
- If it's a bug, try to identify the root cause or narrow down the area of code involved
- If it's a feature, understand current architecture to describe where the feature fits
-
Draft the issue — read the appropriate GitHub issue template from .github/ISSUE_TEMPLATE/ and use it as the structure for the issue body:
- Bug Report: read
.github/ISSUE_TEMPLATE/01_bug_report.yml — extract the field labels and structure from the YAML form definition.
- Feature Request: read
.github/ISSUE_TEMPLATE/02_feature_request.yml — extract the field labels and structure from the YAML form definition.
Convert the YAML form fields into a Markdown body where each field's label becomes a ### Heading and the content is filled in based on your investigation.
-
Determine labels and metadata:
- Type labels: read the
labels field from the corresponding .github/ISSUE_TEMPLATE/*.yml file to get the correct labels (e.g. bug reports use bug; feature requests use enhancement and to-be-documented).
- Priority label (one of):
Priority-Low, Priority-Medium, Priority-High. Guess the appropriate priority based on context, but always confirm with the user.
- Severity label (one of):
Severity-Low, Severity-Minor, Severity-Major, Severity-Critical. Guess the appropriate severity based on context, but always confirm with the user.
- Milestone: Use
release-<MAJOR>.<MINOR> format (version from build.gradle without the bugfix/patch part, e.g. version 0.15.0-rc → milestone release-0.15). Always confirm the milestone with the user.
- Project: AI DIAL Admin (project number 68, added via
gh project item-add after issue creation)
-
Show the draft to the user — present the full issue title, body, labels, milestone, and project for review. Ask if they want to adjust anything before creating.
-
Create the issue using gh issue create on epam/ai-dial-admin-deployment-manager-backend with the title, body, labels, and milestone. Use a HEREDOC for the body. Example:
gh issue create --repo epam/ai-dial-admin-deployment-manager-backend \
--title "the title" \
--label "bug" --label "Priority-Medium" --label "Severity-Minor" \
--milestone "release-0.15" \
--body "$(cat <<'EOF'
issue body here
EOF
)"
-
Add to project — after creating the issue, add it to the AI DIAL Admin project (number 68):
gh project item-add 68 --owner epam --url <ISSUE_URL>
-
Set the issue type — use the mcp__github__issue_write tool to set the GitHub issue type. The available types for the epam org are: Bug, Feature, Task. Set Bug for bug reports and Feature for feature requests. Example:
mcp__github__issue_write(method="update", owner="epam", repo="ai-dial-admin-deployment-manager-backend", issue_number=<NUMBER>, type="Feature")
-
Return the issue URL to the user.