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

5.7 KiB
Raw Permalink Blame History

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 编号
  • 按编号排序

合并示例

// 合并前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 编号升序