cross-review-project
关于
This skill enables two Claude Code instances to conduct structured, reciprocal code reviews on each other's projects via a `cross-review-mcp` mediator. It facilitates evidence-based dialogue between agents, enforcing review quality through QSG scaling laws with minimum bandwidth constraints and stage gating. Use it for independent, cross-project reviews when you need deep, structured analysis beyond a single reviewer's perspective to share architectural insights and identify missing patterns.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/cross-review-project在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
跨项目审查
两个 Claude Code 实例通过 cross-review-mcp 中介的结构化工件交换互相审查项目。中介强制执行 Quantized Simplex Gossip (QSG) 缩放定律 —— 审查捆绑必须包含至少 5 个发现以保持在选择区间(Γ_h ≈ 1.67),防止浅层共识冒充为同意。
适用场景
- 两个项目共享架构关切,可以互相学习
- 你希望进行超出单一审阅者所见的独立代码审查
- 目标是交叉授粉:在一个项目中发现另一个项目缺失的模式
- 你需要带 accept/reject/discuss 裁决的、结构化的、证据支持的审查
输入
- 必需:可被两个 Claude Code 实例访问的两个项目路径
- 必需:
cross-review-mcp中介正在运行并在两个实例中配置为 MCP 服务器 - 可选:聚焦区域 —— 优先处理的特定目录、模式或关切
- 可选:Agent ID —— 每个实例的标识符(默认:项目目录名)
步骤
第 1 步:验证前提条件
确认中介正在运行且两个实例都能到达它。
- 检查中介已配置为 MCP 服务器:
claude mcp list | grep cross-review - 调用
get_status验证中介响应正常且无过时代理已注册 - 阅读
cross-review://protocol处的协议资源 —— 这是描述审查维度和 QSG 约束的 markdown 文档
预期结果: 中介对 get_status 响应空代理列表。协议资源可读为 markdown。
失败处理: 若中介未配置,添加它:claude mcp add cross-review-mcp -- npx cross-review-mcp。若先前会话遗留过时代理,在继续前对每个调用 deregister。
第 2 步:注册
向中介注册此代理。
- 调用
register,提供:agentId:简短、唯一的标识符(如项目目录名)project:项目名capabilities:["review", "suggest"]
- 调用
get_status验证注册 —— 你的代理应以 phase"registered"出现 - 等待同伴代理注册:调用
wait_for_phase,提供同伴的 agent ID 和 phase"registered"
预期结果: 两个代理已在中介注册。get_status 显示 2 个代理处于 phase "registered"。
失败处理: 若 register 因 "already registered" 失败,agent ID 已被先前会话占用。先调用 deregister,再重新注册。
第 3 步:简报阶段
读取自己的代码库并向同伴发送结构化简报。
- 系统化阅读:
- 入口点(主文件、index、CLI 命令)
- 依赖图(package.json、DESCRIPTION、go.mod)
- 架构模式(目录结构、模块边界)
- 已知问题(TODO 注释、未解决问题、技术债)
- 测试覆盖(测试目录、CI 配置)
- 撰写
Briefing工件 —— 一个结构化摘要,让同伴能高效导航你的代码库 - 调用
send_task,提供:from:你的 agent IDto:同伴 agent IDtype:"briefing"payload:JSON 编码的简报
- 调用
signal_phase,提供 phase"briefing"
预期结果: 简报已发送且阶段已发出信号。中介强制要求你必须先发送简报才能推进到审查。
失败处理: 若 send_task 拒绝简报,检查 from 字段是否与你已注册的 agent ID 匹配。自发送会被拒绝。
第 4 步:审查阶段
等待同伴的简报,然后审查他们的代码并发送发现。
- 调用
wait_for_phase,提供同伴 ID 和 phase"briefing" - 调用
poll_tasks检索同伴的简报 - 调用
ack_tasks,提供收到的任务 ID —— 这是必需的(peek-then-ack 模式) - 在简报指引下阅读同伴的实际源代码
- 在 6 个类别中产出发现:
pattern_transfer—— 同伴可以采用的、你项目中的模式missing_practice—— 同伴缺乏的实践(测试、验证、错误处理)inconsistency—— 同伴代码库内部矛盾simplification—— 可以减少的不必要复杂性bug_risk—— 潜在运行时失败或边界情况documentation_gap—— 缺失或误导的文档
- 每个发现必须包括:
id:唯一标识符(如"F-001")category:上述 6 个类别之一targetFile:同伴项目中的路径description:你发现了什么evidence:为何这是有效发现(代码引用、模式)sourceAnalog(推荐):你自己项目中演示该模式的等价物 —— 这是真正交叉授粉的唯一机制
- 捆绑至少 5 个发现(QSG 约束:m ≥ 5 使 Γ_h ≈ 1.67 保持在选择区间)
- 调用
send_task,提供 type"review_bundle"和 JSON 编码的发现数组 - 调用
signal_phase,提供 phase"review"
预期结果: 审查捆绑被中介接受。少于 5 个发现会被拒绝。
失败处理: 若捆绑因发现不足被拒绝,更深入审查。该约束存在以防止浅层审查占主导。若你确实找不到 5 个问题,重新考虑跨审查是否是此项目对的合适工具。
第 5 步:对话阶段
接收关于自己项目的发现并以证据支持的裁决回应。
- 调用
wait_for_phase,提供同伴 ID 和 phase"review" - 调用
poll_tasks检索关于你项目的发现 - 调用
ack_tasks,提供收到的任务 ID - 对每个发现,产出
FindingResponse:findingId:与发现 ID 匹配verdict:"accept"(有效,将采取行动)、"reject"(无效,附反证据)或"discuss"(需要澄清)evidence:为何接受或拒绝 —— 必须非空counterEvidence(可选):与发现相矛盾的特定代码引用
- 通过
send_task发送所有响应,提供 type"response" - 调用
signal_phase,提供 phase"dialogue"
注意:"discuss" 裁决不被协议门控 —— 将其视为手动跟进的标志,而非自动子交换。
预期结果: 所有发现都以裁决回应。空响应被中介拒绝。
失败处理: 若你无法对某发现形成意见,默认 "discuss",并附解释你需要哪些额外上下文的证据。
第 6 步:综合阶段
产出综合工件,汇总已接受的发现和计划行动。
- 调用
wait_for_phase,提供同伴 ID 和 phase"dialogue" - 轮询任何剩余任务并确认它们
- 编译
Synthesis工件:- 已接受的发现及计划行动(你将更改什么以及为何)
- 已拒绝的发现及理由(为未来审查保留推理)
- 调用
send_task,提供 type"synthesis"和 JSON 编码的综合 - 调用
signal_phase,提供 phase"synthesis" - 可选地为已接受的发现创建 GitHub issue
- 调用
signal_phase,提供 phase"complete" - 调用
deregister进行清理
预期结果: 两个代理都达到 "complete"。中介要求至少 2 个已注册代理才能推进到 complete。
失败处理: 若同伴已注销,你仍可在本地完成。从你收到的发现中编译你的综合。
验证清单
- 两个代理都已注册并达到
"complete"阶段 - 简报在审查开始前交换(阶段强制)
- 审查捆绑各包含至少 5 个发现
- 所有发现都收到带证据的裁决(accept/reject/discuss)
- 每次
poll_tasks后都调用了ack_tasks - 已产出综合,并将已接受发现映射到行动
- 完成后已注销代理
常见问题
- 少于 5 个发现:中介拒绝 m < 5 的捆绑。这并非任意 —— 在 N=2 代理和 6 类别下,m < 5 使 Γ_h 处于或低于共识与噪声不可分的临界边界。更深入审查;若确实找不到 5 个发现,项目可能不会从跨审查中受益。
- 遗忘
ack_tasks:中介使用 peek-then-ack 投递。任务保留在队列中直到确认。遗忘 ack 会在下次轮询时导致重复处理。 - 遗忘
from参数:send_task需要显式from字段匹配你的 agent ID。自发送被拒绝。 - 同模型认知相关性:两个 Claude 实例共享训练偏差。时间排序确保它们在审查期间不读取彼此输出,但它们的先验是相关的。为获得真正的认知独立性,跨实例使用不同模型族。
- 跳过
sourceAnalog:sourceAnalog字段可选,但是真正交叉授粉的唯一机制 —— 它展示你对你推荐模式的实现。当存在源类比时始终填充。 - 将
discuss视为阻塞:协议中没有任何东西在待处理讨论解决前阻塞complete。将discuss裁决视为会话后手动跟进的标志。 - 不审查遥测:中介将所有事件记录到 JSONL。会话后审查日志以验证 QSG 假设 —— 经验性估计 α(
α ≈ 1 - reject_rate)并检查每类别接受率。
相关技能
scaffold-mcp-server—— 用于构建或扩展中介本身implement-a2a-server—— 中介借鉴的 A2A 协议模式review-codebase—— 单代理审查(此技能将其扩展到跨代理结构化交换)build-consensus—— 群体共识模式(QSG 是理论基础)configure-mcp-server—— 在 Claude Code 中将中介配置为 MCP 服务器unleash-the-agents—— 可用于分析中介本身(实战检验:40 个代理、10 个假设族)
GitHub 仓库
相关推荐技能
qmd
开发这是一个本地搜索和索引的CLI工具,支持BM25、向量搜索和重排序功能。开发者可以用它快速索引本地文件(如Markdown文档)并进行混合搜索,特别适合代码库或文档的本地检索。它还提供MCP模式,能轻松集成到Claude开发环境中使用。
subagent-driven-development
开发该Skill用于在当前会话中执行包含独立任务的实施计划,它会为每个任务分派一个全新的子代理并在任务间进行代码审查。这种"全新子代理+任务间审查"的模式既能保障代码质量,又能实现快速迭代。适合需要在当前会话中连续执行独立任务,并希望在每个任务后都有质量把关的开发场景。
mcporter
开发mcporter Skill 让开发者能在Claude中直接管理和调用MCP服务器。它支持列出可用服务器、调用工具、处理OAuth认证以及管理服务器守护进程。开发者可以通过命令行式交互快速执行`mcporter list`查看服务器,或使用`mcporter call`直接调用工具,简化了MCP工作流程。
adk-deployment-specialist
开发这是一个用于部署和编排Google Vertex AI ADK智能体的Claude Skill,专为构建生产级多智能体系统而设计。它支持通过A2A协议进行智能体通信,提供代码执行沙箱和记忆库功能,并能处理智能体发现与任务提交。当开发者需要部署ADK智能体或编排多智能体协作时,可使用此Skill来简化Vertex AI Agent Engine的部署流程。
