From 0063581e47cbe8c98628b0162a40101f852eddd2 Mon Sep 17 00:00:00 2001 From: Sehoon Shon Date: Sat, 28 Feb 2026 18:22:22 -0500 Subject: [PATCH] feat(skills): add github-issue-creator skill (#20709) --- .gemini/skills/github-issue-creator/SKILL.md | 76 ++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .gemini/skills/github-issue-creator/SKILL.md diff --git a/.gemini/skills/github-issue-creator/SKILL.md b/.gemini/skills/github-issue-creator/SKILL.md new file mode 100644 index 0000000000..53aa612607 --- /dev/null +++ b/.gemini/skills/github-issue-creator/SKILL.md @@ -0,0 +1,76 @@ +--- +name: github-issue-creator +description: + Use this skill when asked to create a GitHub issue. It handles different issue + types (bug, feature, etc.) using repository templates and ensures proper + labeling. +--- + +# GitHub Issue Creator + +This skill guides the creation of high-quality GitHub issues that adhere to the +repository's standards and use the appropriate templates. + +## Workflow + +Follow these steps to create a GitHub issue: + +1. **Identify Issue Type**: Determine if the request is a bug report, feature + request, or other category. + +2. **Locate Template**: Search for issue templates in + `.github/ISSUE_TEMPLATE/`. + - `bug_report.yml` + - `feature_request.yml` + - `website_issue.yml` + - If no relevant YAML template is found, look for `.md` templates in the same + directory. + +3. **Read Template**: Read the content of the identified template file to + understand the required fields. + +4. **Draft Content**: Draft the issue title and body/fields. + - If using a YAML template (form), prepare values for each `id` defined in + the template. + - If using a Markdown template, follow its structure exactly. + - **Default Label**: Always include the `🔒 maintainer only` label unless the + user explicitly requests otherwise. + +5. **Create Issue**: Use the `gh` CLI to create the issue. + - **CRITICAL:** To avoid shell escaping and formatting issues with + multi-line Markdown or complex text, ALWAYS write the description/body to + a temporary file first. + + **For Markdown Templates or Simple Body:** + ```bash + # 1. Write the drafted content to a temporary file + # 2. Create the issue using the --body-file flag + gh issue create --title "Succinct title" --body-file --label "🔒 maintainer only" + # 3. Remove the temporary file + rm + ``` + + **For YAML Templates (Forms):** + While `gh issue create` supports `--body-file`, YAML forms usually expect + key-value pairs via flags if you want to bypass the interactive prompt. + However, the most reliable non-interactive way to ensure formatting is + preserved for long text fields is to use the `--body` or `--body-file` if the + form has been converted to a standard body, OR to use the `--field` flags + for YAML forms. + + *Note: For the `gemini-cli` repository which uses YAML forms, you can often + submit the content as a single body if a specific field-based submission is + not required by the automation.* + +6. **Verify**: Confirm the issue was created successfully and provide the link + to the user. + +## Principles + +- **Clarity**: Titles should be descriptive and follow project conventions. +- **Defensive Formatting**: Always use temporary files with `--body-file` to + prevent newline and special character issues. +- **Maintainer Priority**: Default to internal/maintainer labels to keep the + backlog organized. +- **Completeness**: Provide all requested information (e.g., version info, + reproduction steps).