用途:当用户想为当前 GitHub 仓库创建 issue 时使用本技能,并严格遵循仓库自身的 issue 模板格式。
主要能力:
- 判断 issue 类型:问题/报错/崩溃归 Bug Report;新功能或增强归 Feature Request;提问求助归 Questions & Discussion;无面向用户行为变化的工程工作(PR 后续、技术债、重构、工具或 CI)归 Engineering Task;其他归 Others。不清楚时询问用户,不得自行默认 Others。
- 读取 .github/ISSUE_TEMPLATE/ 下选中模板,识别必填字段(validations.required: true)、标题前缀(title)、标签(labels)和 issue 类型(type)。Engineering Task 改读 references/engineering-task.md。
- 按模板必填项与选项约束收集信息,模板是唯一事实来源,不硬编码标题前缀、标签或类型。
Engineering Task 资格检查:该模板面向有写权限的维护者与协作者。先用 gh repo view、gh api user、gh api "repos/$repo/collaborators/$user/permission" 获取权限,仅 admin 与 write(maintain 报 write)合格;其他结果应说明该模板面向有写权限的维护者,请贡献者改用公开模板,并主动提出协助提交,不得悄悄换模板却保留 Engineering Task 的标签或类型。不要用 repos/{owner}/{repo}/collaborators/{user} 做此判断。
使用方式:创建临时文件写入 issue 正文,例如 issue_body_file="$(mktemp /tmp/gh-issue-body-XXXXXX).md",然后执行 gh issue create --title "<带模板前缀的标题>" --body-file "$issue_body_file"。模板有标签时按标签逐个追加 --label;无标签则不传 --label。模板声明 type 时需显式传入,因 --body-file 不会自动带上类型。--template 与 --web 针对默认分支的 .github/ISSUE_TEMPLATE/,对 Engineering Task 不可用,需本地构建正文。其他模板可用 --template "<模板名>" 作为起点,复杂格式可用 gh issue create --web。创建后删除临时文件:rm -f "$issue_body_file"。
限制与注意:必须读取模板文件以确保格式正确;标题需清晰简洁,避免“一个建议”“卡住了”等含糊措辞;应提供尽可能多的细节;用户未指定模板类型时先让其选择;预览与确认步骤在用户明确表示不需要(如自动化流程)时可跳过。
资料未提供该技能的收费、价格、具体平台范围或效果数据。