以下是内容的中文翻译,保持原有格式不变:
name: 创建问题 description: 在GitHub或Jira中创建问题。自动检测是否启用了GitHub问题;如果是,则创建GitHub问题,否则创建Jira问题。 allowed-tools: Bash(gh:), Bash(jira:), Bash(git:*), 读取,写入
创建问题
在适当的跟踪器(GitHub问题或Jira)中创建问题。
步骤1:检测问题跟踪器
-
获取仓库名称:
basename $(git rev-parse --show-toplevel) -
检查是否启用了GitHub问题:
gh repo view --json hasIssuesEnabled --jq '.hasIssuesEnabled'- 如果是
true→ 创建GitHub问题 - 如果是
false→ 创建Jira问题
- 如果是
-
确定问题类型:任务、错误或故事
-
检查用户请求中的指派人
-
根据严重程度确定优先级/标签
GitHub问题
如果启用了GitHub问题,使用gh issue create。
步骤2a:将问题正文写入issue-body.md
根据问题类型使用适当的模板(见下面的模板部分)。
**注意:**此文件将在命令运行后被删除。
步骤2b:运行gh命令
gh issue create \
--title "<摘要>" \
--body-file issue-body.md \
--label "<标签>" && rm issue-body.md
如果用户指定了指派人,添加--assignee "<用户名>"。
**注意:**不需要仓库名称前缀 - GitHub问题已经限定在仓库范围内。
Jira问题
如果禁用了GitHub问题,使用jira issue create。
步骤2a:将问题正文写入issue-body.md
根据问题类型使用适当的模板(见下面的模板部分)。
**注意:**此文件将在命令运行后被删除。
步骤2b:运行jira命令
jira issue create --no-input \
--type "<类型>" \
--priority "<优先级>" \
--label "<标签>" \
--summary "[<仓库名称>] <摘要>" \
--template issue-body.md && rm issue-body.md
如果用户指定了指派人,添加--assignee "<用户名>"。
模板
根据问题类型选择适当的模板:
模板:任务
## 做什么
提供任务的清晰和简洁的描述。
## 包含在内
- 定义此任务包含的内容
## 不包含在内
- 澄清不涉及的内容
## 安全和合规性
- 如果没有安全/合规性影响,写:"没有直接的安全或合规性影响。"
- 如果有影响,具体说明违反了哪个控制/要求以及实际风险
## 测试细节
- 概述测试策略
## 技术细节
包括任何剩余的细节,如代码片段、文件位置或工具建议。
模板:错误
## 描述
错误简洁的描述。
## 环境
- **环境:**(例如,测试,生产)
- **应用版本:**
- **浏览器/操作系统:**
- **受影响的组件:**
## 实际行为
详细描述实际发生的事情。包括任何错误消息、日志或屏幕截图。
## 预期行为
详细解释应该发生的事情。
## 重现步骤
1. 第一步
2. 第二步
3. 第三步
**可重现性:**(总是,有时,很少)
## 影响与严重性
- **影响:**描述对用户或业务运营的影响
- **严重性:**(关键,主要,次要)
## 故障排除与变通方法
- 已经采取的步骤来诊断或修复问题
- 如果有的话,提供临时的变通方法
## 附加信息
- 屏幕截图、视频或附加日志
- 相关的错误或工单
- 潜在的修复或调查区域(可选)
模板:故事
## 谁
- **用户组:**谁将使用或从这个功能中受益(最终用户,管理员,编辑等)
- **利益相关者:**相关的内部团队或客户细分
## 做什么
- **意图:**描述故事的目标;专注于需要实现什么,而不是技术实现
- **范围:**概述高级功能,不涉及UI具体细节或库细节
## 为什么
- **商业价值:**解释这个功能如何改善UX,增加留存,或缩短问题解决的旅程
- **指标/KPI:**将故事与相关的性能指标连接起来
- **非功能需求:**包括性能,安全,合规等其他质量要求
## 高级描述与设计
- **概览:**提供功能的简要叙述
- **Figma/设计链接:**[插入链接]包含所有相关的设计注释
- **设计要求:**UI/UX必须适应所有屏幕尺寸,包括非常小的设备。包括支持多语言的两行文本按钮设计
## 后端API与合同变更
- **API变更:**描述任何所需的变更或新端点
- **集成:**指定前端集成的方法
- **性能与安全:**突出任何潜在的性能问题或安全考虑
## 前端考虑
- **平台特定说明:**列出不同平台的任何特定要求
- **错误与成功路径:**清楚定义成功和错误流程
## 基础设施与合规性
- **影响评估:**评估对基础设施或安全合规标准的影响
- **性能与成本:**突出任何潜在的性能或成本影响
## 仪表板与资产管理
- **仪表板影响:**评估任何配置变更或新仪表板要求
- **资产需求:**确保所有资产(图像,文本,翻译)可用
## 依赖关系与风险
- **依赖关系:**列出任何相关的故事,外部依赖关系或系统
- **阻碍:**识别可能影响进度的潜在阻碍
- **风险:**概述可能影响功能交付的风险
- **缓解策略:**描述最小化或管理这些风险的行动
## 技术文档
- **文档链接:**包括相关技术文档或架构图的链接
- **额外上下文:**提供任何额外的技术注释,这些注释可以帮助实现
## 环境与发布说明
- **环境考虑:**注意任何特定环境的细节
- **发布计划:**详细说明功能标志,回滚计划或特殊部署说明
## 测试策略
- **测试要求:**定义超出接受标准的测试要求
- **测试场景:**概述关键测试案例和场景
## 接受标准
- 起草涵盖所有成功场景和所有错误路径的详细接受标准
- 由于动态因素导致的变化
- 确保标准是可测量的,不留下任何歧义的空间
## 发布后监控
- **监控指标:**指定发布后要监控的指标或日志
- **反馈机制:**概述如何在部署后收集用户反馈和性能数据
优先级映射(仅限Jira)
| 严重程度 | Jira优先级 |
|---|---|
| 严重 | 阻塞 |
| 高 | 严重 |
| 中等 | 主要 |
| 低 | 次要 |
| 信息 | 次要 |
重要规则
- GitHub问题:
- 使用
gh issue create和--body-file - 不需要仓库名称前缀(问题已限定在仓库范围内)
- 标签是简单的字符串(例如,
bug,enhancement,documentation)
- 使用
- Jira问题:
- 总是用仓库名称作为摘要前缀:
[仓库名称] 简短描述 - 总是使用
--no-input标志以防止交互式提示 - 不要指定项目(
-p或--project)- 使用用户配置中的默认值 - 设置15秒超时 - 如果它挂起,命令格式错误
- 总是用仓库名称作为摘要前缀:
- 两者:
- 使用Markdown格式
- 使用
##用于主要标题,-用于项目符号 - 使用反引号用于内联代码
- 对于不适用的部分,写"N/A"或"无特别说明"
- 创建问题后删除临时文件(
issue-body.md)