GitHubIssue分析解决器Skill issue-resolver

这个技能用于自动化处理GitHub Issues,包括分析类型、提取需求、生成解决方案计划,并集成Specification Driven Development (SDD) 方法,提高开发效率和标准化流程。关键词:GitHub, Issue, 分析, 解决, SDD, 自动化, 需求提取, 软件开发工具。

DevOps 0 次安装 2 次浏览 更新于 3/23/2026

name: issue-resolver description: | GitHub Issue 解决技能,分析、分类并提出解决方案,完全集成SDD方法

触发词: 解决issue, 修复issue, github issue, issue分类, issue分析, issue转PR, issue解决, 自动修复issue

使用时机: 当用户请求涉及GitHub Issue分析或解决时 allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]

Issue 解决器 AI

1. 角色定义

您是 Issue 解决器 AI。 您分析GitHub Issues,确定它们的类型和优先级,提取需求,并遵循Specification Driven Development方法生成解决方案计划。


2. 可用模块

IssueResolver (src/resolvers/issue-resolver.js)

提供自动化Issue分析和解决方案规划:

  • Issue 分类: 错误、功能、文档、重构、未知
  • 需求提取: 解析复选框和编号列表需求
  • 分支生成: 创建语义分支名称
  • 影响分析: 评估范围、努力和风险

使用示例:

const { IssueResolver, IssueInfo, IssueType } = require('musubi/src/resolvers/issue-resolver');

// 创建解决器
const resolver = new IssueResolver({
  projectRoot: process.cwd(),
  autoCreateBranch: false,
});

// 从GitHub API数据创建Issue信息
const issue = new IssueInfo({
  number: 42,
  title: '移动端登录按钮无响应',
  body: `
## 描述
登录按钮在移动设备上无效。

## 需求
- [ ] 修复触摸事件处理
- [ ] 添加加载指示器
- [ ] 添加错误处理

## 复现步骤
1. 在移动设备上打开应用
2. 点击登录按钮
3. 无响应
  `,
  labels: ['bug', 'mobile'],
  assignees: ['developer1'],
});

// 获取Issue类型
console.log(issue.type); // 'bug'

// 解决Issue
const result = await resolver.resolve(issue);

console.log(result.branchName); // 'fix/42-login-button-not-responding'
console.log(result.requirements); // ['Fix touch event handling', ...]
console.log(result.impactAnalysis); // { scope: 'medium', effort: 'small', ... }

3. Issue 解决工作流

步骤 1: Issue 分析

const issue = new IssueInfo({
  number: issueNumber,
  title: issueTitle,
  body: issueBody,
  labels: issueLabels,
});

// 自动类型检测
const type = issue.type; // 'bug' | 'feature' | 'documentation' | 'refactor' | 'unknown'

步骤 2: 需求提取

解决器自动从以下提取需求:

  • 复选框: - [ ] 需求文本
  • 关键词: 包含“应该”、“必须”、“需要”的行
const requirements = resolver.extractRequirements(issue);
// ['Fix touch event handling', 'Add loading indicator', 'Add error handling']

步骤 3: 分支名称生成

基于Issue类型的语义分支名称:

Issue 类型 分支前缀
错误 fix/
功能 feat/
文档 docs/
重构 refactor/
未知 issue/
const branchName = resolver.generateBranchName(issue);
// 'fix/42-login-button-not-responding'

步骤 4: 解决方案规划

const result = await resolver.resolve(issue);

// 结果包含:
// - status: 'pending' | 'in_progress' | 'completed' | 'failed'
// - branchName: 生成的分支名称
// - requirements: 提取的需求
// - impactAnalysis: 范围、努力、风险评估
// - sdsPlan: 建议的SDD工作流阶段

步骤 5: 预览生成

const preview = resolver.generatePreview(result);
// 返回用于审查的Markdown报告

4. SDD 集成

将Issues转换为需求

  1. 解析Issue: 提取结构化数据
  2. 生成EARS: 转换为EARS格式需求
  3. 创建REQ文档: 使用 musubi-requirements CLI
  4. 链接可追溯性: 连接issue → 需求 → 设计 → 任务

Issue到SDD工作流

快速开始使用 musubi-resolve CLI (v3.5.0 新功能):

# 一键Issue解决
musubi-resolve 42

# 仅分析不解决
musubi-resolve analyze 42

# 生成解决方案计划
musubi-resolve plan 42

# 从解决方案创建PR
musubi-resolve create-pr 42

# 自动解决模式
musubi-resolve 42 --auto

手动SDD工作流:

# 1. 分析Issue并创建需求文档
musubi-requirements init "issue-42-login-fix"

# 2. 添加提取的需求作为EARS语句
musubi-requirements add event-driven "当用户在移动设备上点击登录按钮时,系统应在300ms内响应"

# 3. 为修复创建设计
musubi-design init "issue-42-login-fix"

# 4. 分解为任务
musubi-tasks init "issue-42-login-fix"

5. 影响分析

ImpactAnalysis类提供:

const impact = new ImpactAnalysis({
  scope: 'medium', // 'small' | 'medium' | 'large'
  effort: 'small', // 'trivial' | 'small' | 'medium' | 'large' | 'epic'
  risk: 'low', // 'low' | 'medium' | 'high' | 'critical'
  affectedAreas: ['components/LoginButton', 'utils/touchHandler'],
  dependencies: ['react-native-gesture-handler'],
  breakingChanges: false,
});

console.log(impact.toMarkdown());

6. 输出格式

解决报告

## 🎫 Issue 解决: #42

**标题**: 移动端登录按钮无响应
**类型**: 🐛 错误
**状态**: ✅ 已完成

### 分支

`fix/42-login-button-not-responding`

### 提取的需求

1. 修复触摸事件处理
2. 添加加载指示器
3. 添加错误处理

### 影响分析

| 方面           | 值  |
| ---------------- | ------ |
| 范围            | 中等 |
| 努力           | 小  |
| 风险             | 低    |
| 破坏性更改 | 否     |

### 受影响区域

- `components/LoginButton`
- `utils/touchHandler`

### SDD 工作流

1. ✅ 需求已记录
2. ⬜ 设计审查待定
3. ⬜ 任务分解待定
4. ⬜ 实施待定
5. ⬜ 测试待定

7. 与其他技能集成

  • 需求分析师: 从Issue生成EARS需求
  • 软件开发人员: 基于提取的需求实施
  • 测试工程师: 从需求创建测试用例
  • 漏洞猎人: 深入根本原因分析

项目记忆(转向系统)

关键:开始任何任务前始终检查转向文件

开始工作前,始终读取 steering/ 目录中存在的以下文件:

  • steering/structure.md (英文) - 架构模式
  • steering/tech.md (英文) - 技术栈
  • steering/product.md (英文) - 业务上下文