# Zy Xr

> 跨模型交叉评审，让不同 AI 模型对同一份文件独立评审

- Skill: `ian-zy1/zy-xr` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add ian-zy1/zy-xr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ian-zy1/zy-xr/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Ian-zy1 (https://skillmd.com/u/ian-zy1)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ian-zy1/zy-xr

---


# zy-xr

> Cross-model Review — 跨模型交叉评审

## When to Use

- 用户说 `/zy-xr`、`/xr`、`交叉评审`、`交叉审阅`
- 用户完成需求文档后（可主动建议对 `.project/requirements/` 下的文件做评审）
- 用户完成架构设计后（可主动建议评审）
- 用户对某个重要文件想获得"第二意见"时

## 核心理念

One file in, one review out. Zero ceremony. Zero dependencies. Platform-agnostic.

## 不适用场景

- PR code review → 用 `code-review` skill
- 需求追踪 → 用 `zy-track`

## 执行模式

自动检测可用模式，优先 Mode A。

### Mode A：会话内 sub-agent（首选）

在当前会话内启动一个**不同模型**的 sub-agent：

| 平台 | 方式 |
|------|------|
| Claude Code | Agent tool + `model` 参数指定不同模型 |
| OpenCode | 使用 `task()` 调用。示例：`task(category="quick", load_skills=[], run_in_background=false, prompt="你是一名独立的技术评审员...（填充评审模板后的完整提示词）")`。通过选择不同的 category 来间接选择不同模型 |
| 其他 | 使用平台原生 sub-agent 机制 |

如果 sub-agent 失败（超时、模型不可用），报告错误并停止。**不自动重试**。

### Mode B：跨窗口文件交接（备选）

```
1. Agent 填充评审模板 → 写入 {target}.xr-request.md
2. 用户打开另一个 agent 窗口，说 "执行 xr 评审"
3. 另一个 Agent 读取请求文件，执行评审，写入 {target}.xr.md
```

用户协调，零配置——只有文件。

## 评审流程

### 1. 读取目标文件

- 无路径 → 列出当前目录文件让用户选择
- 路径不存在 → 提示并停止
- 文件太大（>100KB）→ 提示拆分或选择部分

### 2. 确认评审配置（简短，一个问题）

```
审阅模型: {default} (或指定其他模型)
```

**默认模型选择规则**：选择与当前会话**不同**的模型：

| 当前模型家族 | 默认评审模型 |
|-------------|------------|
| Claude opus | Claude sonnet |
| Claude sonnet | Claude opus |
| Claude haiku | Claude sonnet |
| GLM 系列 | 优先用 Claude 或 GPT 系列（跨厂商视角差异更大） |
| Kimi 系列 | 优先用 Claude 或 GLM 系列 |
| GPT 系列 | 优先用 Claude 或 Kimi 系列 |

无法判断当前模型时：选择可用模型列表中与你认为的当前模型最不相似的一个。

用户可通过 `--model` 覆盖。

如果用户指定 `--focus "安全性"`，跳过维度自动检测，直接用 focus。

### 3. 填充评审模板

读取评审提示词模板：@templates/review-prompt.md

替换占位符：

| 占位符 | 替换为 |
|--------|--------|
| `{dimensions}` | 自动检测（见 @references/dimensions.md）或 `--focus` 值 |
| `{filename}` | 目标文件路径 |
| `{content}` | 目标文件内容 |

如果指定了 `--focus`，在维度部分后追加 `重点关注: {focus}`。

### 4. 执行评审

使用可用模式（A 优先，B 备选）执行评审。

### 5. 写入评审文件

- 路径：`{original_without_ext}.xr.md`
- 例：`docs/architecture.md` → `docs/architecture.xr.md`
- 文件已存在 → **直接覆盖**

### 6. 追加评审摘要到原文件

#### zy-track 需求（路径含 `.project/requirements/`）

如果文件有 `## 进度记录` 部分，追加：

```markdown
### {date} (xr - {model})
- 关键反馈: {1-2 sentence summary of must-fix items}
- 修订状态: 待采纳
```

如果没有 `## 进度记录` → 走通用摘要逻辑。

#### 其他文件（含无进度记录的需求）

追加 HTML 注释（不影响渲染）：

```html
<!-- xr: {date} | {model} | ❌ {must-fix summary} | ⚠️ {suggestion count}项建议见 .xr.md -->
```

## 维度自动检测

根据文件路径/扩展名自动选择评审维度，详见：@references/dimensions.md

用户可通过 `--dimensions` 或 `--focus` 覆盖。

## 参数

| 参数 | 说明 | 示例 |
|------|------|------|
| `<file>` | 目标文件路径 | `/zy-xr docs/arch.md` |
| `--model` | 指定评审模型 | `--model sonnet` |
| `--dimensions` | 自定义维度 | `--dimensions A,B,C` |
| `--focus` | 聚焦特定方面 | `--focus 安全性` |

## Common Traps

1. **不要用当前模型评审自己的输出** — 必须用不同模型，否则失去"不同视角"的意义
2. **不要把完整评审追加到原文件** — 只追加一行摘要（HTML 注释或进度记录），完整评审写入 `.xr.md`
3. **评审提示不要比被评审内容还长** — 模板要精简，核心是指令不是模板
4. **Mode B 文件交接时用户需要手动在另一个窗口执行** — 不要假设自动化，明确告诉用户步骤

## 约束

- 不自动触发
- 不创建新目录
- 不让评审提示比被评审内容还长
- 不跳过模型确认
- 不假设特定 sub-agent API——适配当前平台
- 不将完整评审追加到原文件——只追加一行摘要

