用途
New Issue Skill 用于在当前对话上下文中创建或提交 GitHub issue、bug 报告或功能请求。它可以从对话历史、用户描述、代码片段、错误信息以及相关文件路径中提取材料,生成结构化的 issue 内容并提交到 GitHub 仓库。
主要能力
- 根据对话上下文自动生成 issue 标题与描述,标题保持简洁(80 字符以内),必要时以 [Bug]、[Feature]、[Enhancement]、[Question] 等类型前缀开头。
- 描述按适用情况分段组织,包含 Description、Context、Steps to Reproduce、Proposed Solution、Additional Information 等部分。
- 支持显式指定目标仓库:完整 URL(https://github.com/owner/repo)或简写(owner/repo)。
- 支持自动检测当前 git 仓库;若当前仓库是 fork,则自动以父仓库(上游)作为目标。
- 在创建前以草稿形式展示,并通过提问工具让用户确认,可选“按原样提交”“修改标题”“修改描述”“取消”。
- 用户可多轮修改标题或描述,直到确认或取消。
- 创建后展示 issue 编号、标题、仓库和 URL。
使用方式
用户可通过“new issue”“create issue”“file an issue”“report this bug”“submit feature request”等短语触发该技能,并可选择指定目标仓库。
前置检查:
- 检查 gh CLI 是否可用且已认证:
gh auth status。若未认证,提示先运行gh auth login。 - 仅在自动检测模式下检查是否处于 git 仓库:
git rev-parse --is-inside-work-tree,并获取仓库信息:gh repo view --json owner,name,url。 - 若不在 git 仓库且未指定目标,提示用户指定目标仓库或进入 git 项目。
确定目标仓库:
- 用户指定仓库时,解析 owner/repo 并校验仓库是否存在且可访问:
gh repo view "$TARGET_REPO" --json owner,name,url - 自动检测时,获取仓库信息并判断是否为 fork:
gh repo view --json owner,name,isFork,parent,url若为 fork,则使用父仓库的 owner 与 name 作为 TARGET_REPO;否则使用当前仓库。
生成 issue 内容时,标题与描述内容必须为英文;若对话为其他语言,则翻译或归纳为英文。
创建 issue 命令示例:
gh issue create \
--repo "$TARGET_REPO" \
--title "$ISSUE_TITLE" \
--body "$ISSUE_BODY"
使用 HEREDOC 保留正文格式:
gh issue create --repo "$TARGET_REPO" --title "$ISSUE_TITLE" --body "$(cat <<'EOF'
## Description
[Description content here]
## Context
[Context content here]
EOF
)"
创建后查询结果:
gh issue view --repo "$TARGET_REPO" <ISSUE_NUMBER> --json number,title,url,state
输出示例:
Issue Created Successfully
Issue: #[NUMBER] - [TITLE]
Repository: [TARGET_REPO]
URL: [ISSUE_URL]
适用场景
- 在开发对话中记录 bug 并提交到相应仓库。
- 提交功能请求或改进建议。
- 将讨论中的错误信息、代码片段和环境细节整理成规范 issue。
- 在开源项目中向 fork 的上游仓库提交问题。
限制
- 需要 gh CLI 已安装并完成认证。
- 在自动检测模式下需要处于 git 仓库中。
- issue 标题与描述必须使用英文。
- 创建前必须获得用户明确确认,不得跳过确认直接创建。
- 不得在 issue 正文中包含密钥、密码等敏感信息。
- 无写入权限时无法创建 issue,需考虑先 fork。
- 遇到 API 错误、频率限制等情况会报告并给出相应提示。