返回顶部
c

cross-ref交叉引用

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
567
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

cross-ref

Cross-Ref: PR与Issue关联器

你能够发现人类在大规模场景下容易遗漏的PR与Issue之间的隐藏关联。
核心循环是:获取 → 并行分析 → 聚类 → 验证 → 报告 → 执行

在执行任何操作之前,请先阅读 references/principles.md。当该文件中的规则与本文件存在冲突时,以该文件中的规则为准。

概述

随着时间的推移,仓库会积累重复的PR以及孤立的Issue→PR链接。手动交叉引用无法扩展到几十个项目以上。此技能使用并行的Sonnet子代理同时分析多达1000个PR和1000个Issue,寻找两种类型的链接:

  1. 1. 重复PR — 解决相同错误或功能的PR(即使采用不同的方法或措辞)
  2. Issue→PR链接 — 已有PR解决但未明确标注fixes #N的开放Issue

结果按主题聚类分组,根据可操作性评分,并提供可用的操作(评论、关闭、打标签)——而不仅仅是一对一的扁平列表。

配置

用户在调用时提供以下参数(如果未提供则询问):

参数默认值描述
repo(询问)要分析的GitHub owner/repo
pr_count
1000 | 要扫描的最近PR数量 |
| issue_count | 1000 | 要扫描的最近Issue数量 |
| pr_state | all | PR状态筛选:open,closed,all |
| issue_state | open | Issue状态筛选:open,closed,all |
| batch_size | 50 | 每个子代理批次的PR数量 |
| confidence_threshold | medium | 包含在报告中的最低置信度:low,medium,high |
| mode | plan | plan = 仅报告(默认,始终从此开始)。execute = 对发现结果执行操作。 |

默认模式为 plan(试运行)。该技能始终从生成报告开始。用户必须在审查发现结果后明确选择执行操作。这一点很重要,因为操作无法撤销。

工作流程

阶段 1:数据收集

从GitHub API获取PR和Issue元数据。此阶段是确定性的,使用shell脚本——无需AI。

bash
scripts/fetch-data.sh dir> [prcount] [issuecount] [prstate] [issue_state]

这将生成:

  • - workspace/prs.json — 完整的PR元数据
  • workspace/issues.json — 完整的Issue元数据(已过滤掉PR)
  • workspace/existing-refs.json — 预先提取的显式交叉引用
  • workspace/pr-index.txt — 紧凑的每行一个PR的索引
  • workspace/issue-index.txt — 紧凑的每行一个Issue的索引

现有的引用映射捕获了已经链接的内容(通过fixes #N、closes #N等),以便子代理可以专注于缺失的内容。

阶段 2:并行分析(Sonnet子代理)

这是智能处理发生的地方。将PR分成批次,并生成并行的Sonnet子代理。每个子代理接收:

  • - 其批次的PR(来自prs.json的完整元数据,约50个PR)
  • 完整的Issue索引(紧凑型,约60KB)
  • 完整的PR索引(紧凑型,约60KB)——用于重复检测
  • 现有的引用映射(以便跳过已链接的项目)

使用Task工具生成子代理:

对于每批包含{batch_size}个PR的批次B:
Task(
subagent_type=general-purpose,
model=sonnet,
prompt=<见下文>
)

子代理提示模板:

重要:在构建每个子代理提示时,将 references/principles.md 的完整内容粘贴到下面的决策原则部分。不要总结或压缩——包含完整的文本。这确保子代理始终使用最新的原则,不会发生偏离。

你是一个GitHub仓库的交叉引用分析师。你的工作是找到尚未明确链接的PR和Issue之间的关联。

决策原则(这些原则覆盖其他所有内容)

{在此处粘贴references/principles.md的完整内容}

你的批次

你正在分析{totalprs}个PR中的第{startnum}到{end_num}个。

PR详情(你的批次)

{来自prs.json的此批次的完整PR元数据}

完整的Issue索引

{issue-index.txt内容}

完整的PR索引

{pr-index.txt内容}

已知引用

{existing-refs.json内容}

你的任务

找到两种类型的关联:

1. Issue→PR链接

对于你批次中的每个PR,判断它是否解决了索引中的任何Issue。证据必须至少包含以下一项:
  • - 两者描述了相同的错误消息或失败路径
  • PR修改了Issue描述为损坏的组件/模块
  • PR正文明确引用了Issue描述的问题(即使没有#N)

仅标题相似是不够的。跳过已知引用中已存在的任何链接。

2. 重复PR

对于你批次中的每个PR,检查完整PR索引中是否有任何其他PR解决了相同的问题。证据必须至少包含以下一项:
  • - 两者因相同原因修改了相同的文件
  • 两者修复了相同的错误/行为(即使采用不同的方法)
  • 一个是另一个的重新提交或延续(相同的分支,相似的正文)

仅代码区域相同是不够的——PR必须解决相同的具体问题。

3. 标记不确定性

如果你遇到证据模糊的配对——你看到可能的关联但无法从现有数据中确认——用status: manualreviewrequired标记它,而不是猜测置信度。包括缺失的内容(例如,需要查看完整差异以确认文件重叠)。

输出格式

仅返回一个JSON数组。不要有其他文本。

[
{
type: issue_link,
pr: 5678,
pr_author: @username,
issue: 1234,
confidence: high|medium|low,
status: confirmed|manualreviewrequired,
root_cause: 一句话:这些关联的共同问题是什么,
evidence: 具体:相同的错误消息,相同的文件,相同的组件等。,
missing_evidence: null 或 确认此关联需要什么
},
{
type: duplicate_pr,
pr_a: 5678,
pr_b: 5679,
praauthor: @username_a,
prbauthor: @username_b,
confidence: high|medium|low,
status: confirmed|manualreviewrequired,
root_cause: 一句话:这些关联的共同问题是什么,
evidence: 具体:修改了相同的文件,相同的分支,重新提交等。,
missing_evidence: null 或 确认此关联需要什么
}
]

并行度:同时生成所有批次子代理。batch_size=50且1000个PR时,即20个并行子代理。这是该技能的优势所在——原本需要数小时顺序完成的工作,现在几分钟内即可完成。

阶段 3:合并、去重与聚类

在所有子代理返回后:

  1. 1. 收集所有JSON结果到一个数组中
  2. 去重duplicatepr条目(A→B和B→A是相同的链接)
  3. 合并置信度——如果两个子代理找到相同的链接,采用较高的置信度并合并两个证据字符串
  4. confidencethreshold 过滤
  5. 构建聚类——将相关发现分组到主题聚类中(见下文)
  6. 按可操作性对聚类进行评分(见下文)
  7. 按分数对聚类进行排序(最高优先)

保存到 workspace/results-unverified.json。

聚类算法

不报告孤立的配对,而是将相关的发现分组到聚类中。如果两个发现共享任何PR或Issue编号,则它们属于同一个聚类。

示例:如果你发现 PR#100 ↔ PR#101(重复)和 PR#100 ↔ Issue#50(链接),这些形成一个单一的聚类:聚类:Issue#50 + PR#100 + PR#101

聚类结构:
json
{
cluster_id: 1,
theme: Onboard令牌不匹配 — OPENCLAWGATEWAYTOKEN被忽略,
items: [PR#22662, PR#22658, Issue#22638],
findings: [ ...此聚类中的各个发现... ],
score: 8.5,
clusterstatus: actionable|needsreview|manualreviewrequired,
suggested_actions: [ ...见阶段4b... ]
}

theme 是一行摘要,描述此聚类是关于什么的——共享的根本原因或功能领域。从

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 cross-ref-1776419989 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 cross-ref-1776419989 技能

通过命令行安装

skillhub install cross-ref-1776419989

下载

⬇ 下载 cross-ref v1.1.0(免费)

文件大小: 28.94 KB | 发布时间: 2026-4-17 18:25

v1.1.0 最新 2026-4-17 18:25
Added usage tutorial: step-by-step guide, strategy table, parameter reference, token cost estimates, and resume support docs.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部