gitlink-cli/skills/gitlink-faq/references/gitlink-faq-cluster.md

115 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# gitlink-faq 分类与聚类
> 本文档说明 AI 如何对 Issue 先分类Bug/功能请求/使用问题),再在同一类型内聚类。
## 分析前提
**聚类仅基于 `subject` + `description` 两个字段**。GitLink API 不支持读取 Issue 评论journals无法获取讨论/解决方案。但优秀的 description 往往包含:复现步骤、环境信息、修复建议、详细场景描述——这些都是高质量聚类的基础。
## 两步流程
```
┌─────────────────────────────────────────┐
│ Step 1: 类型分类 │
│ 每条 Issue → AI 判断类型 │
│ Bug / Feature Request / Usage Question │
│ 不确定的归入"其他"但保留,不丢弃 │
└──────────────────┬──────────────────────┘
┌─────────────────────────────────────────┐
│ Step 2: 类型内聚类 │
│ Bug → 按出问题的模块分类 │
│ Feature → 按功能领域分类 │
│ Usage → 按操作场景分类 │
└─────────────────────────────────────────┘
```
## Step 1: 类型分类
### 分类 Prompt
```
你正在分析一个项目的已关闭 Issue。请对每条 Issue 判断它属于以下哪种类型:
类型定义:
- bug: 描述异常行为、报错、行为与预期不符、数据缺失/错误
- feature: 建议新增功能、增强现有能力、改进体验
- question: 不知道如何使用、配置不清楚、询问是否支持某能力
- other: 不属于以上三类(如测试、讨论、公告)
返回 JSON 数组:
[{
"issue_number": N,
"subject": "标题",
"type": "bug|feature|question|other",
"reason": "一句话判断依据"
}]
```
### 分类规则
| 类型 | 判断信号 | 反例(容易误判) |
|------|----------|-----------------|
| **bug** | 含"报错""不生效""异常""不一致""缺失""无法"等 | "希望能 xx"是 feature 不是 bug |
| **feature** | 含"希望""建议""能否支持""加一个""要是能"等 | "xx 不支持"可能是 question |
| **question** | 含"怎么""如何""能不能""是否支持"等,且是咨询性质 | "xx 报错怎么办"→ 先确认是不是 bug |
| **other** | 标题含"test""测试""讨论""收集"等 | 不确定时归为 other |
## Step 2: 类型内聚类
### Bug 聚类
按**出问题的模块/组件/功能**归类,找出高频 Bug 模式。
聚类维度:
- 影响的是哪个命令/接口(如 `issue +view`、`pr +list`、`api` 命令)
- 问题类型是否相同(数据显示错误 ×4 / 命令执行失败 ×2 / 平台兼容 ×1
- Bug 之间是否存在共同根因
输出格式:
```json
{
"module": "Issue/PR 数据展示",
"bug_count": 4,
"pattern": "CLI 返回数据字段与网页端不一致或字段缺失",
"affected_issues": [5, 7, 15, 18],
"typical_symptom": "使用 view 命令查看详情时,部分字段(如关闭时间、描述等)缺失或与网页端不一致"
}
```
### 功能请求聚类
按**请求的功能领域**归类,找出用户需求热度。
聚类维度:
- 请求的是哪个能力方向API 增强 / 命令扩展 / 平台支持)
- 是否指向同一个需求的不同表述
- 是否有用户点赞/讨论热度叠加
输出格式:
```json
{
"feature_area": "API 查询能力增强",
"request_count": 3,
"pattern": "用户希望 API 支持更丰富的查询和操作",
"affected_issues": [9, 14, 21],
"common_ask": "支持按序号查询、返回完整时间字段、读取仓库文件"
}
```
### 使用问题聚类(传统 Q&A
与传统 FAQ 一致:按操作场景归类,提炼"问题 → 答案"。
仅当同类 ≥ 2 条时生成 Q&A 条目。
## 批次合并
多批次处理后的合并规则:
1. 同类型的相同模块/领域 → 合并,更新 issue_count
2. 跨类型的关联 Issue 标注引用(如一个 Bug 可能由某个 Feature Request 修复)
3. 最终按 `bug_count` / `request_count` 降序排列