# Jira Bug Submit

> 从测试结果提取失败用例，查重后自动创建 Jira Bug（Jira 不可用时降级为本地模拟 BUG 单，流程不中断）。Use when the user asks to submit bugs, 提交BUG, 自动提单, or create Jira issues from failed tests.

- Skill: `naonaoxu/jira-bug-submit` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add naonaoxu/jira-bug-submit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/naonaoxu/jira-bug-submit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: naonaoxu (https://skillmd.com/u/naonaoxu)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/naonaoxu/jira-bug-submit

---


# 自动提交 BUG（Jira Bug Submission）

## 目的

把测试执行阶段的失败用例自动转化为 Jira Bug：提取 → 查重 → 建单 → 台账。**Jira 不可用时降级为本地模拟 BUG 单，演示流程绝不硬失败。**

## 输入（固定路径）

- `reports/junit.xml` —— 测试结果数据文件（上游产物）

## 执行步骤

1. **提取失败用例**：运行
   `python .claude/skills/jira-bug-submit/scripts/parse_junit.py reports/junit.xml reports/failed_cases.json`
   - 失败用例数为 0：正常结束（无 BUG 可提），台账中注明「本次执行无失败用例」。
2. **能力探测（关键）**：检查当前会话是否有 Jira MCP 工具（工具名以 `mcp__jira__` 或 `mcp__atlassian__` 开头）。
   - **没有工具，或后续任何一次调用失败（认证失败/网络不通/项目不存在）→ 立即转入第 6 步模拟模式，绝不停摆。**
3. **读模板**：读取 `references/jira-bug-template.md`，按模板组织单内容。
4. **查重（强制，建单前必须执行）**：对每个失败用例：
   - 用搜索工具执行 JQL：`project = {项目KEY} AND summary ~ "{用例名关键字}" AND status not in (Closed, Done)`
   - **存在未关闭的同名 BUG → 跳过创建，台账标注「已存在」；不存在 → 才允许建单。**
   - 项目 KEY 取环境变量 `JIRA_PROJECT_KEY`，未设置时默认 `DEMO`。
5. **建单**：按模板用创建工具建单（标题 `[自动化测试] {用例可读名} 失败`，描述含环境/复现步骤/期望 vs 实际/失败信息，labels=autotest）。
6. **台账**：
   - 真实模式 → 写入 `reports/jira_issues.md`（表格：用例名 / Jira 单号 / 状态：新建或已存在 / 链接）。
   - 模拟模式 → 写入 `reports/simulated_jira_bugs.md`，**文件头显著标注【模拟Jira】未连接真实 Jira**，BUG 单格式与真实 Jira 模板一一对应（标题/环境/步骤/期望 vs 实际/严重级别）。

## 输出（固定路径）

- `reports/failed_cases.json`（中间物）
- `reports/jira_issues.md`（真实模式台账）或 `reports/simulated_jira_bugs.md`（模拟模式台账）

## 质量自检

- [ ] 每个失败用例在台账中都有对应行（创建或已存在），无遗漏
- [ ] 建单前对每个用例执行了 JQL 查重（未关闭同名单不重复提交）
- [ ] 单标题含 `[自动化测试]` 前缀与用例可读名
- [ ] 描述含期望 vs 实际（对照断言失败信息）
- [ ] 降级路径真实可用：模拟单格式与真实模板一致且显著标注【模拟Jira】

## 模拟模式台账模板（simulated_jira_bugs.md）

```markdown
# 【模拟Jira】未连接真实 Jira，以下为本地模拟 BUG 单

> 降级原因：{能力探测结果，如「未配置 Jira MCP / 认证失败」}
> 说明：单内容与真实 Jira Bug 模板一一对应，接入真实 Jira MCP 后自动切换。

## BUG-1
- 标题：[自动化测试] {用例可读名} 失败
- 严重级别：S2
- 标签：autotest
- 环境：http://127.0.0.1:5000（本地 Flask 演示应用）
- 复现步骤：...
- 期望结果：...
- 实际结果：...
- 失败信息：...
```

