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

141 lines
5.7 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 同类问题合并
> 本文档说明如何判断多个 Issue 描述的是同一个问题,以及如何将它们合并为一条 FAQ 条目。
## 合并流程
```
┌─────────────────────────────────────────┐
│ Step 1: Q&A 提取完成 │
│ 每条 Issue → {Q, A, confidence} │
└──────────────────┬──────────────────────┘
┌─────────────────────────────────────────┐
│ Step 2: 相似度判断 │
│ 比较 Q 的语义相似度 │
│ 比较 A 的答案是否一致 │
└──────────────────┬──────────────────────┘
┌─────────────────────────────────────────┐
│ Step 3: 合并 │
│ 同一问题 → 综合 Q + 综合 A + 合并来源 │
│ 不同问题 → 各自保留 │
└──────────────────┬──────────────────────┘
┌─────────────────────────────────────────┐
│ Step 4: 按主题标签归类 │
│ 为每条 FAQ 打上主题标签 │
└─────────────────────────────────────────┘
```
## Step 1: 相似度判断
### 判断 Prompt
```
你正在判断两个 Issue 是否描述的是同一个问题,是否应该合并为一条 FAQ。
## Issue A
Q: {Q_A}
A: {A_A}
## Issue B
Q: {Q_B}
A: {A_B}
请判断它们是否属于同一问题:
- **same**:描述的是同一个问题,只是表述不同(应合并)
- **related**:涉及同一主题但具体问题不同(不合并,但可放同一主题下)
- **different**:完全不同的问题
返回 JSON
{
"level": "same|related|different",
"reason": "一句话判断依据"
}
```
### 合并判断标准
| 判断 | 条件 | 处理 |
|------|------|------|
| **same合并** | 两个 Issue 的症状/需求一致,答案也一致或互补 | 合并为一条 FAQ |
| **related相邻** | 同一主题但具体问题不同 | 不合并,放在同一主题标签下相邻排列 |
| **different独立** | 完全无关 | 各自独立 |
### 合并判断示例
```
✅ 合并:
Issue #16: Q="安装后运行报 command not found" A="加入 PATH"
Issue #20: Q="gitlink-cli 命令找不到?" A="检查 PATH 配置"
→ 同一问题,表述不同,合并
❌ 不合并:
Issue #16: Q="安装后运行报 command not found" A="加入 PATH"
Issue #42: Q="如何配置代理?" A="设置 HTTP_PROXY"
→ 都是安装配置主题,但是不同的问题
```
## Step 2: 合并规则
### 合并后的 Q问题
- 选择表述更清晰、更完整的那个 Q
- 如果各有优劣,综合提炼一个新的 Q
### 合并后的 A答案
- 优先采用 confidence 更高的 A
- 如果两个 A 互补(各有信息),合并为更完整的答案
- 标注"综合自 Issue #A#B 的讨论"
### 合并后的来源
- 列出所有相关 Issue 编号
- 按编号排序
### 合并示例
```json
// 合并前3 条独立条目
[
{ "issue": 16, "Q": "安装后运行报 command not found", "A": "加入 PATH", "confidence": "high" },
{ "issue": 20, "Q": "gitlink-cli 命令找不到?", "A": "检查 ~/.local/bin 在 PATH 中", "confidence": "high" },
{ "issue": 35, "Q": "终端提示 command not found: gitlink-cli", "A": "暂未找到解决方案", "confidence": "low" }
]
// 合并后1 条 FAQ
{
"Q": "安装 gitlink-cli 后运行报 command not found 怎么办?",
"A": "将 ~/.local/bin 加入 PATH 环境变量。\\nLinux/Mac: export PATH=$PATH:~/.local/bin\\nWindows: 将 %USERPROFILE%\\.local\\bin 加入系统 PATH",
"confidence": "high",
"sources": [16, 20, 35],
"labels": ["安装配置"]
}
```
## Step 3: 按主题标签归类
合并完成后,为每条 FAQ 打上主题标签。每个标签有对应图标,生成文档时章节标题必须带图标。标签体系:
| 图标 | 主题标签 | 适用范围 | 关键词信号 |
|------|----------|----------|------------|
| 🔧 | `安装配置` | 安装、登录、认证、Token、代理、环境变量 | install, auth, login, token, proxy, config, setup |
| 💻 | `CLI 命令` | 命令使用、参数、输出格式、交互 | command, flag, option, output, format |
| 🔗 | `API 与集成` | API 调用、Webhook、CI/CD | api, webhook, ci, cd, integration |
| 📊 | `数据显示` | 数据不一致、字段缺失、展示 | data, field, display, missing, mismatch |
| 🖥️ | `平台兼容` | OS 兼容、环境依赖 | windows, linux, macos, platform, compatibility |
| ⚡ | `性能` | 响应慢、超时、资源 | slow, timeout, performance, memory |
| 💡 | `功能请求` | 用户希望新增/改进 | 希望、能否、建议、支持 |
| 📦 | `其他` | 不属于以上 | — |
> 一条 FAQ 可以打多个标签。例如一个 Bug 既是 CLI 命令问题又是数据显示问题,就打两个标签。
## 排序规则
同一主题标签内的 FAQ 条目按以下顺序排列:
1. 合并来源多的在前(反映问题更常见)
2. 同等数量按 confidence 高的在前
3. 同等 confidence 按 Issue 编号升序