Skip to content
Back to skills

X Multi Llm Align

ASecurity

跨 LLM 协议/数据结构/流程对齐 skill。当一个项目的契约(API/事件协议/数据结构/接口/流程)需要由两个或多个 LLM 各自代表实现方立场来回审稿时使用。用户作为人类中间人,在两个 LLM 之间传递文档与反馈。 典型场景:项目 A 的 LLM 写了一份 contract 文档,项目 B 的 LLM 要从实现方角度审稿、提反馈、敲细节,多轮迭代到双方都站得住脚。 触发关键词:"和另一个 LLM 对齐协议"、"跨团队 contract review"、"让另一个 LLM 给意见"、"多 LLM 讨论"、"另一个工程师设计的协议你看看"、"我把反馈传过去了,对方改了"、"x-multi-llm-align"、"multi-llm 流程",或用户描述的场景里同时出现"另一个 LLM/工程师/项目"+"协议/契约/数据结构/接口"+"对齐/review/审稿"等组合。 适用领域:协议对齐、数据结构对齐、流程对齐。不适用:单方面 review、代码 PR 评审(用 x-cr)、写作 peer review。

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 27, 2026
developmentgitapi

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add KtKID/x-dev-pipeline --skill x-multi-llm-align --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of X Multi Llm Align?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for X Multi Llm Align
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ktkid-x-multi-llm-align/badge)](https://www.skillsdirectory.com/skills/ktkid-x-multi-llm-align)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: x-multi-llm-align
description: |
  跨 LLM 协议/数据结构/流程对齐 skill。当一个项目的契约(API/事件协议/数据结构/接口/流程)需要由两个或多个 LLM 各自代表实现方立场来回审稿时使用。用户作为人类中间人,在两个 LLM 之间传递文档与反馈。
  典型场景:项目 A 的 LLM 写了一份 contract 文档,项目 B 的 LLM 要从实现方角度审稿、提反馈、敲细节,多轮迭代到双方都站得住脚。
  触发关键词:"和另一个 LLM 对齐协议"、"跨团队 contract review"、"让另一个 LLM 给意见"、"多 LLM 讨论"、"另一个工程师设计的协议你看看"、"我把反馈传过去了,对方改了"、"x-multi-llm-align"、"multi-llm 流程",或用户描述的场景里同时出现"另一个 LLM/工程师/项目"+"协议/契约/数据结构/接口"+"对齐/review/审稿"等组合。
  适用领域:协议对齐、数据结构对齐、流程对齐。不适用:单方面 review、代码 PR 评审(用 x-cr)、写作 peer review。
---

# x-multi-llm-align — 跨 LLM 协议对齐器

## 这个 skill 解决什么

把"两个 LLM 各自代表自己实现方立场来回审稿协议"的高质量对齐流程固化下来。

为什么这种流程比单方面写文档更有价值:

- 不同 LLM 实例**分别代表不同实现方的立场**,会从自己实现侧的"我得真去实现"角度提问,挖出对方写文档时漏掉的实现陷阱
- 用户作为**人类中间人传递反馈**,不需要 LLM 之间直接通信,也保留人类对关键产品决策的拍板权
- 多轮迭代后产出的契约**双方都站得住脚**,开发时返工率低
- **保留推理过程**,后续接手的 LLM 能直接读懂整套对齐逻辑,不用从头推一遍

## 适用与不适用

**适用**:
- 协议对齐(JSON/JSONL/HTTP API/RPC 契约)
- 数据结构对齐(事件 schema、消息格式、状态机定义)
- 流程对齐(接入流程、生命周期约定、错误处理流程)

**不适用**(这些场景将来可能有姊妹 skill):
- 代码 PR 评审 → 用 `x-cr`
- 写作 peer review(论文/博客/PRD)
- 单方面文档 review(不涉及第二个 LLM)

---

## 工作流

### 阶段 0 — 触发后的准备

**第一步:识别讨论文件位置**(按优先级)

1. 用户提供的 spec 目录下,新建/读取 `discussion-<topic>.md`(不污染原 spec 文档)
2. 当前项目的 `dev-pipeline/discussions/discussion-<topic>.md`(不存在则 `mkdir -p`)
3. 绝对 fallback:`/tmp/multi-llm-align/discussion-<topic>.md`

**topic** 取自 spec 主题名(如 `claude-sidecar-contract`、`thread-event-schema`),不要太泛。

**单文件追加**:所有轮次都写在同一份文件里(不每轮新建),让后续接手的 LLM 一次读完所有上下文。

**第二步:识别自己的模型名**

每次发言都要标注模型名,方便后续 LLM 看历史时区分谁说的。

识别策略(按优先级):
1. 扫自己的 system prompt,常见模式:
   - `You are powered by the model named (.+?)[.\.]`
   - `The exact model ID is (.+?)[.\.]`
   - 直接含 `claude-(opus|sonnet|haiku)-\d` 等
2. 找不到就一句话问用户:"我用什么名字署名?"
3. 对方 LLM 的名字:用户提供,或从 spec 文档作者标记里读,找不到就标 `[<对方未知>]`

发言标签格式:`[claude-opus-4-7]` / `[claude-sonnet-4-6]` / `[gpt-5]` / `[<对方未知>]`

**第三步:如果讨论文件已存在**

直接读完整个文件,搞清当前在第几轮、上一轮决议是什么,然后接力进入下一轮。**不要重新发起第 1 轮**。

---

### 阶段 1 — 单轮 review 流程

每轮必做这 5 步:

#### 1.1 读全文(第一轮)或读 diff(后续轮)

**第一轮**:完整读所有相关 spec 文档,不抽样、不靠目录推测内容。漏读的部分会变成"我没发现的对齐问题",下一轮才暴露,浪费一次往返。

**第二轮起**:只读对方改了什么(用 git 或对照之前版本),同时**全文档扫一遍**确认命名空间没漂移(特别要检查状态机表、映射表、错误处理段落、跨文档引用——这些位置最容易漏改)。

#### 1.2 建立编号反馈清单

按问题性质给前缀编号:

| 前缀 | 含义 | 例子 |
|---|---|---|
| `E` | Error / 不一致 / 矛盾(必改) | `E1 — 04 和 05 文档对 content 类型定义不一致` |
| `Q` | Question / 不明确点(待敲板) | `Q1 — 进程是 thread 级还是 run 级?` |
| `N` | New / 我建议新增的事项 | `N1 — 缺 generic_chat 路径定义` |
| `D` | Decision / 待用户拍板的产品决策 | `D1 — deny 后是否强制 fail?` |

每个问题用统一格式:

```markdown
### E1 — <一句话问题描述>
**现状**:<对方文档怎么写的,引用具体行/段落>
**问题**:<为什么这是问题,不改会发生什么后果>
**推荐**:<具体怎么改,给最终态文字而不是泛泛建议>
**理由**:<为什么这么改最好——给硬背书:实测/SDK 源码/类比同类系统>
**影响面**:<协议字段 / 状态机 / 实现细节 / 产品决策>
```

**关键**:所有问题集中列完,按优先级排(P0/P1/P2/P3)。**一次给完,不要拖泥带水分多次**。一次给完才方便对方批量处理。

#### 1.3 写到讨论文件(追加,不重写)

```markdown
## 第 N 轮 — 反馈 [<我的模型名>]
> 时间:YYYY-MM-DD HH:MM
> 状态:反馈待回应
> 我读了:<spec 文件列表,相对路径>

### 上下文回顾
<上一轮的核心决议,让新进来的 LLM 不用从头读>

### 本轮反馈
<E1 / E2 / Q1 / N1 ... 编号清单,按优先级排序>

### 拍板格式
回 `全 Y` 同意全部 / `改 #1 #3` 指出要改的编号 / `撤回 #2` 撤掉某条 / 自由文字。
```

#### 1.4 等用户传话

不要假设对方反应。用户回来的常见信号:
- "改好了 / 改完了" → 进 1.5(再 review)
- "对方拒绝 #X,理由 Y" → 重新评估你的论点,必要时撤回
- "对方又改了某地方" → 进入下一轮 review
- 单字回复(`Y` / `OK` / `提交`) → 收口当前轮

#### 1.5 评估对方反应(核心:不硬扛)

对方拒绝你时**不要硬扛**。重读对方理由,如果站得住脚就**直接撤回自己的方案**(不辩护)。这是这个 skill 最关键的纪律——也是用户协作偏好里写明的:"用户指出我误导时直接承认错误,不要辩护"。

撤回时在讨论文件追加:

```markdown
## 第 N 轮 — 撤回回应 [<我的模型名>]
> 状态:撤回部分提案

### 撤回 #X
<对方的论点摘要>
我之前的推荐 <X> 站不住脚,撤回。改用 <对方方案>。理由:<我承认的具体论点>。
```

但反过来——**SDK 源码 / 实测数据 / 第三方实现支持你时**,可以坚持,但要给硬证据,不要凭空辩护。

---

### 阶段 2 — 多轮迭代

按阶段 1 重复,直到收口。两条关键技巧:

#### 2.1 借子 agent 做实测背书

如果协议涉及第三方库 / SDK / API,spec 里的字段/行为假设可能跟实情不符——**派子 agent 跑 smoke 实测**,结果作为下一轮反馈的硬背书。

实测脚本类型:
- 调真实 API/SDK,逐条打印输出对象的类型 + 字段
- 测边界场景(错误路径、并发、resume、超时)
- 整理成"SDK 真实行为 vs spec 假设"对照表

实测背书比凭空推理强很多——**对方很难拒绝实测数据**。如果实测会消耗 API 配额或费用,先告知用户。

#### 2.2 通俗模式

当用户说"看不懂"、"消化不了"、"用术语过密"——**立即换大白话重写一遍**,每条带:

- **现状是什么**(spec 现在怎么写的)
- **我建议改成什么**(最终态)
- **为什么这么改**(理由 + 背书)
- **不改会怎样**(具体后果,最好给场景化的例子)

**不要用简短术语涵盖大量语义**。这是用户协作偏好里写明的硬要求。

---

### 阶段 3 — 收口

#### 3.1 收口判断

**硬条件**(任一即收口):
- 剩余坑都是 nice-to-have(无阻塞性反对)
- 用户主动说"敲死 / 可以开工 / 收"
- 对方完全采纳所有反馈,无新问题冒出

**软条件**(建议提示用户):
- 同一个问题来回 3 轮以上还在拉锯 → 让用户决定
- 双方各自从立场坚持不让步 → 让用户决定(人类拍板)

#### 3.2 收口时在讨论文件追加

```markdown
## 收口 [<我的模型名>]
> 时间:YYYY-MM-DD HH:MM
> 状态:双方协议敲定 / 用户决定收口

### 最终决议
<本次对齐的核心决议清单,每条一句话,按编号引用之前的反馈>

### 已留待办
<没在本次解决但记录在案的事项,比如 v0.X 之后再做的细节>

### 后续动作
<开发流程下一步:进 x-req / x-spec / x-dev / x-qdev>
```

---

## 讨论文件初始模板

第一次创建讨论文件时写入:

```markdown
# Multi-LLM 对齐讨论:<topic>

> 议题:<协议名 / spec 主题>
> 主 spec 路径:<spec 目录或核心文件>
> 参与 LLM:[<我的模型名>] [<对方模型名>] [<可能更多>]
> 启动时间:YYYY-MM-DD

## 议题概要

<2-3 句话说清楚要对齐什么>

## 决议追踪

(收口时填,记录最终决议清单)

---
(往下追加每轮反馈和回应)
```

---

## 关键约束

### 不污染对方文档
讨论永远在 `discussion-<topic>.md` 里,**绝不直接改对方的 spec**。对方的 spec 改与不改是对方的决定。

### 一次给完反馈
一轮反馈把所有问题集中列完,不要分多次。让对方一次性批量处理,节省往返次数。

### 拍板格式简洁
最后给用户的"回什么"必须一目了然——单字(`Y` / `1` / `B`)/ 编号(`改 #1 #3`)/ 自由文字。**不要让用户填表或回答开放式问题**。

### 撤回不辩护
对方论点站得住脚就立即撤回。**这是质量纪律**,硬扛会污染讨论质量。

### 保留推理过程
讨论文件里**不只写结论**,更要写"为什么这么定"。后续 LLM 接手时能直接读懂逻辑链,不需要重新推。

---

## 触发后的第一句话

skill 触发时,用一句话告诉用户即将做什么:

> "我用 x-multi-llm-align 流程开干。先识别讨论文件位置 → 通读 spec → 建立编号反馈清单 → 写到讨论文件,等你转给对方。"

然后立即开始阶段 0。**不要先问一堆开放式问题**——讨论文件位置、topic 名、模型名都按上面的优先级自动选,遇到必须问的再问。

---

## 兼容性

- 不依赖外部工具或 MCP server
- 不调用 LLM API(用户作为人类中间人)
- 跟其他 x-* skills 配合:本 skill 收口后通常进 `x-spec` 或 `x-req` 继续推进

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.