关于 issues
issues 是通过 gh 命令行与 GitHub 问题交互的技能。它引导用户创建、筛选列表或查看问题,并提供格式化问题内容的流程。
主要功能
- 01创建带标题、正文和可选标签的问题
- 02按状态、负责人、创建者或标签筛选列表
- 03查看指定问题的详情与评论
- 04为问题正文整理复现步骤和行为描述
适用场景
- 01提交包含复现信息的错误报告
- 02列出分配给自己的待处理问题
- 03查看特定问题的正文、标签和评论
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shpigford/ skills --skill issues安装后在 Claude Code 中输入/issues确认已加载。
详细介绍
与 GitHub 问题互动——创建、列出和查看问题。
说明
此命令可帮助你使用 gh CLI 处理 GitHub 问题。
步骤 1:确定操作
使用 AskUserQuestion 询问用户想要执行什么操作:
问题:
- question: "你想对 GitHub 问题执行什么操作?"
- header: "操作"
- multiSelect: false
- options:
- label: "创建新问题" description: "创建新问题,并填写标题、正文和可选标签"
- label: "列出问题" description: "查看当前仓库中的未关闭问题"
- label: "查看问题" description: "按编号查看特定问题的详细信息"
如果选择“创建新问题”:
步骤 2a:获取问题标题
使用 AskUserQuestion 获取问题标题:
问题:
- question: "请为此问题拟一个简短、易浏览的标题。尽量简洁(最多 5-10 个词);详细信息写在正文中。(选择“Other”以输入标题)"
- header: "标题"
- multiSelect: false
- options:
- label: "我来输入标题" description: "输入简洁的标题,例如“修复无响应的登录按钮”或“添加深色模式支持”"
标题指南:
- 标题应简短、易浏览(最多 5-10 个词)
- 好的示例:“修复损坏的密码重置流程”
- 不好的示例:“我尝试重置密码并点击按钮时什么都没发生,而且还收到一条错误”
- 详细信息应写在描述/正文中,而不是标题里
如果用户提供的标题过长,请帮助他们缩短标题,并将详细信息移至正文。
步骤 3a:获取问题正文
使用 AskUserQuestion 收集问题正文内容:
问题 1——问题类型背景:
- question: "这是什么类型的问题?"
- header: "类型"
- multiSelect: false
- options:
- label: "Bug" description: "需要修复的问题"
- label: "增强" description: "对现有功能的改进"
- label: "新功能" description: "全新的功能"
- label: "任务" description: "常规工作项或杂项任务"
问题 2——描述:
- question: "现在请提供完整详细信息。在这里说明标题中未能写下的背景、上下文和具体情况。(选择“Other”以输入描述)"
- header: "描述"
- multiSelect: false
- options:
- label: "我来详细描述" description: "提供背景、步骤、示例和任何相关信息"
用户将在此处选择“Other”来提供完整描述。
描述指南:
- 所有详细信息都应写在这里——请尽可能详尽
- 包含上下文:你当时在做什么?背景是什么?
- 包含具体信息:错误消息、URL、版本等
- 这里的信息越详细越好;标题则应保持简短
问题 3——对于 Bug,询问复现步骤: 如果问题类型是“Bug”,请使用 AskUserQuestion:
- question: "你能提供复现此 Bug 的步骤吗?(选择“Other”以输入步骤)"
- header: "复现步骤"
- multiSelect: false
- options:
- label: "提供步骤" description: "我来描述如何复现此问题"
- label: "无法复现" description: "此 Bug 是间歇性出现的,或难以复现"
问题 4——预期行为与实际行为(针对 Bug): 如果问题类型是“Bug”,请使用 AskUserQuestion:
- question: "你原本希望发生什么?实际发生了什么?(选择“Other”以描述)"
- header: "行为"
- multiSelect: false
- options:
- label: "描述行为" description: "我来说明预期行为与实际行为"
步骤 4a:获取标签(可选)
使用 AskUserQuestion 选择标签:
- question: "应添加哪些标签?(如果有)"
- header: "标签"
- multiSelect: true
- options:
- label: "bug" description: "某些功能无法正常工作"
- label: "enhancement" description: "新功能或功能请求"
- label: "documentation" description: "文档改进"
- label: "good first issue" description: "适合新手参与"
步骤 5a:创建 Issue
根据类型构建 Issue 正文:
对于 Bug 报告:
## Description
[User's description]
## Steps to Reproduce
[User's reproduction steps or "Not easily reproducible"]
## Expected Behavior
[What should happen]
## Actual Behavior
[What actually happens]
对于功能请求/增强建议:
## Description
[User's description]
## Use Case
[Why this would be useful]
对于任务/其他:
## Description
[User's description]
运行 gh 命令创建 Issue:
gh issue create --title "[title]" --body "[constructed body]" --label "[labels]"
向用户返回 Issue URL。
如果选择了“列出 Issue”:
步骤 2b:筛选选项
使用 AskUserQuestion 确定筛选条件:
- question: "你想如何筛选 Issue?"
- header: "筛选"
- multiSelect: false
- options:
- label: "所有未关闭的 Issue" description: "显示所有未关闭的 Issue"
- label: "指派给我" description: "指派给当前用户的 Issue"
- label: "由我创建" description: "我创建的 Issue"
- label: "指定标签" description: "按标签筛选"
如果选择了“指定标签”,使用 AskUserQuestion:
- question: "要按哪个标签筛选?(自定义标签请使用 'Other')"
- header: "标签"
- multiSelect: false
- options:
- label: "bug" description: "Bug 报告"
- label: "enhancement" description: "功能请求"
- label: "documentation" description: "文档相关 Issue"
步骤 3b:列出 Issue
运行相应的 gh 命令:
- 所有未关闭的 Issue:
gh issue list - 指派给我:
gh issue list --assignee @me - 由我创建:
gh issue list --author @me - 按标签筛选:
gh issue list --label "[label]"
以清晰易读的格式显示结果。
如果选择了“查看 Issue”:
步骤 2c:获取 Issue 编号
使用 AskUserQuestion:
- question: "你想查看哪个 Issue 编号?(使用 'Other' 输入编号)"
- header: "Issue #"
- multiSelect: false
- options:
- label: "输入 Issue 编号" description: "我会输入 Issue 编号"
步骤 3c:查看 Issue
运行:gh issue view [number]
显示 Issue 详情,包括标题、正文、标签、受指派人和评论。
错误处理
如果 gh 命令失败:
- 检查用户是否已通过身份验证:
gh auth status - 如果尚未通过身份验证,请告知用户运行
gh auth login - 检查当前目录是否位于带有 GitHub 远程仓库的 git 仓库中
- 向用户报告具体错误消息
重要说明
- 标题应简洁(5-10 个词)——如果用户提供的标题较长,请帮助缩短标题,并将详细信息移至正文
- 正文应详细——鼓励用户提供充分的背景、步骤和具体信息
- 创建 Issue 后,务必显示 URL 以确认创建成功
- 对于 Issue 正文,保留用户的格式和换行
- 如果用户提供的信息很少,也没关系——使用他们提供的信息创建 Issue
- 使用 HEREDOC 保留正文格式:
gh issue create --title "Title" --body "$(cat <<'EOF' Body content here EOF )"
评论
支持 Markdown