ワンクリックで
create-issue
// Create a GitHub Issue for yamada-ui. Use when the user says they want to create an issue, report a bug, request a feature, report a documentation problem, or file an issue against yamada-ui.
// Create a GitHub Issue for yamada-ui. Use when the user says they want to create an issue, report a bug, request a feature, report a documentation problem, or file an issue against yamada-ui.
Add or remove entries in .agents/references/pr-review-anti-patterns/. Use when the user wants to document a review miss from one or more merged PRs, or remove a stale anti-pattern entry.
Apply labels to GitHub issue. Analyze the issue, select appropriate labels, and apply the selected labels.
Fix a GitHub issue end-to-end following yamada-ui conventions. Analyzes the issue, implements the fix, writes tests, and creates a PR.
| name | create-issue |
| description | Create a GitHub Issue for yamada-ui. Use when the user says they want to create an issue, report a bug, request a feature, report a documentation problem, or file an issue against yamada-ui. |
| metadata | {"internal":true} |
Create a GitHub Issue for yamada-ui.
Use tools to interact with the user throughout the process.
.github/ISSUE_TEMPLATE/ directory in the repository and list English templates (excluding .ja.yml files)name and required fieldsYes; no mention → default to No)Ask for all required fields from the selected template
Ask follow-up questions to gather concrete details, code snippets, and URLs
For the "PR intent" field, offer three options (separate from the template's Yes/No):
| Option | Description | Template value | Label |
|---|---|---|---|
| Yes | Will create a PR | Yes | none |
| No | Will not create a PR | No | triage |
| Open to contributors | Open as a community contribution opportunity | Yes | good first issue |
If "Open to contributors" is selected, append the following to the issue body:
This issue is open to community contribution.
Search by keyword to find duplicates, related issues, and parent/child candidates:
gh api "search/issues?q=repo:yamada-ui/yamada-ui+<keywords>&per_page=20" \
--jq '.items[] | {number: .number, title: .title, state: .state, url: .html_url}'
Autonomously determine the relationship for each result found:
| Judgment | Condition | Action |
|---|---|---|
| Duplicate | Content is nearly identical | Abort and present the existing issue URL to the user |
| Parent/child (existing is parent) | Existing issue is a tracking issue; new issue is a subtask | Link new issue as a child via addSubIssue API |
| Parent/child (new is parent) | New issue is a tracking issue; existing issue is a subtask | After creating the new issue, link existing issue as a child via addSubIssue API |
| Depends on | New issue requires the existing one to be resolved first | Append Depends on #xxxx to the issue body |
| Related | Same component or area | Append Related #xxxx to the issue body |
| Unrelated | Different content | Do nothing |
To get the Node ID of an existing issue:
gh api repos/yamada-ui/yamada-ui/issues/{issue_number} --jq '{node_id: .node_id, title: .title}'
gh issue create --type; create the issue first, then assign the chosen type with GraphQLFetch available Types:
gh api graphql -f query='{ repository(owner: "yamada-ui", name: "yamada-ui") { issueTypes(first: 20) { nodes { id name description } } } }'
Fetch available Labels:
gh api repos/yamada-ui/yamada-ui/labels --paginate --jq '.[] | {name: .name, description: .description}'
Apply labels based on the PR intent answer from step 5:
Yes → no additional label; automatically assign the issue to the current user (use --assignee @me in gh issue create)No → add triageOpen to contributors → add good first issuefeat(x): ...). Wrap component names and code identifiers in backticks, and escape those backticks when presenting shell commands.
sub-issue, Related, Depends on)yamada-ui/yamada-uiUse this template for each issue:
body_file=$(mktemp)
cat > "$body_file" << 'EOF'
<issue body>
EOF
issue_url=$(gh issue create \
--repo yamada-ui/yamada-ui \
--title "<title>" \
--body-file "$body_file" \
[--label "<label1>,<label2>"] \
[--assignee @me]) # Only if PR intent is Yes
issue_number=${issue_url##*/}
issue_node_id=$(gh api "repos/yamada-ui/yamada-ui/issues/$issue_number" --jq '.node_id')
gh api graphql \
-f query='mutation($issueId:ID!, $issueTypeId:ID!){ updateIssue(input:{id:$issueId, issueTypeId:$issueTypeId}) { issue { number title issueType { name } } } }' \
-F issueId="$issue_node_id" \
-F issueTypeId="<issue-type-id>"
For the ai-used checkboxes field in the template: because this skill is AI-driven by definition, copy the options exactly as written in the issue body passed to --body-file, with the "checked the generated content" option set to [x] and the "did not use AI" option set to [ ].
Sub-issue linking (for both new and existing issues):
# Get parent issue Node ID
gh api repos/yamada-ui/yamada-ui/issues/{parent_issue_number} --jq '.node_id'
# Write and execute the GraphQL mutation
cat > /tmp/add_sub_issue.graphql << 'EOF'
mutation AddSubIssue($issueId: ID!, $subIssueUrl: String!) {
addSubIssue(input: { issueId: $issueId, subIssueUrl: $subIssueUrl }) {
issue { number title }
subIssue { number title }
}
}
EOF
gh api graphql \
-F query=@/tmp/add_sub_issue.graphql \
-F issueId="<parent Node ID>" \
-F subIssueUrl="https://github.com/yamada-ui/yamada-ui/issues/<child_issue_number>"