用途:把 /gh-create [OWNER/REPO] <request> 视为授权,提交一个描述该请求的 GitHub Issue。所有使用该技能的智能体以相同方式提交:相同结构、相同标签、相同指派、正确附加媒体,且不泄露隐私数据。该技能只创建和编辑它提交的那一个 Issue,绝不改动代码、分支、拉取请求或其他 Issue。
主要能力:识别目标仓库(优先调用中给出的 OWNER/REPO,否则用当前检出的 GitHub 远程,两者都无法确定时才询问用户);要求已认证且能在该仓库创建 Issue 的 gh;用 gh repo view OWNER/REPO --json visibility,isPrivate,nameWithOwner 检查可见性。可选做只读调研,如用 gh issue list --repo OWNER/REPO --state all --search "<keywords>" 查重,若已有开放 Issue 覆盖请求则告知并链接,除非用户坚持新建。
写作方式:扩展为清晰结构化 Issue,保留用户意图,不虚构需求,新增假设需标注。标题简短具体。正文用 Markdown 分节,如 Summary、Steps to reproduce、Expected behavior、Actual behavior、Requirements、Acceptance criteria、Scope、Out of scope、Screenshots、Notes。结尾必须逐字引用原始提示,放在折叠块中,每行以 > 前缀。正文写入文件后用 --body-file 传入,不用 --body 加字面 \n。
隐私清理:省略或替换本地路径、用户名、真实姓名、邮箱、电话、主机名、内部 URL、IP、令牌、API 密钥、密码、Cookie 等凭据;仓库文件只用仓库相对路径。不得在公开仓库 Issue 中提及私有仓库及其代码。上传媒体前先检查,含敏感信息需裁剪或打码,否则不上传并说明原因。引用提示中的私有值替换为 [redacted]。
标签与指派:用 gh label list --repo OWNER/REPO --limit 200 --json name,description 读取现有标签,套用所有匹配的已有标签,绝不新建或套用仓库未定义的标签;默认 --assignee @me,用户指定他人则改,要求不指派则留空,指派失败仍提交并报告。
媒体附加:优先用 gh issue create 的 --attach(每文件一个),CLI 会替换正文中匹配的本地路径;无该标志或失败时,用 GitHub user-attachments 端点上传并手动替换 URL。上传需推送权限,仅接受图片和媒体文件。上传失败则从正文移除本地路径,用文字描述媒体内容并告知用户。
提交与验证:尽量用一条 gh issue create 完成,随后用 gh issue view NUMBER --repo OWNER/REPO --json url,title,body,labels,assignees 回读检查换行、分节、引用、媒体 URL、标签与指派、隐私。发现问题用 gh issue edit 修正,绝不另开第二个 Issue。最后报告 Issue URL、标题、标签、指派和已附加媒体,并说明未能应用的标签、指派或媒体及原因。
限制:仅创建和编辑单个 Issue;调研不得运行构建、测试或任何改变状态的操作;不提交媒体到仓库;user-attachments 端点未公开,异常响应视为上传失败。