Agent Skills: Expert Review

Use when user wants multi-perspective expert review, role-playing review, or uses trigger words: expert-review, 专家审查, 多角色审查, 专家评审

UncategorizedID: zuozuo/super-review/expert-review

Install this agent skill to your local

pnpm dlx add-skill https://github.com/zuozuo/super-review/tree/HEAD/expert-review

Skill Files

Browse the full folder contents for expert-review.

Download Skill

Loading file tree…

expert-review/SKILL.md

Skill Metadata

Name
expert-review
Description
"Use when user wants multi-perspective expert review, role-playing review, or uses trigger words: expert-review, 专家审查, 多角色审查, 专家评审"

Expert Review

使用 AI 扮演多位领域顶级专家,从不同视角并行审查同一内容。

核心能力

  • 自动识别内容所属领域
  • 选择该领域 5 位顶级专家(多样性优先)
  • 支持预设专家 + AI 智能补充
  • 并行启动 5 个 subagent 扮演专家
  • 汇总共识点与分歧点

执行流程概述

1. 确定审查内容 → 用户指定或智能推断
2. 领域识别 → 分析内容,确定所属领域
3. 专家选择 → 预设为主 + AI 补位(共 5 位)
4. 用户确认 → 展示专家阵容(可 --skip-confirm 跳过)
5. 并行审查 → 5 个 Task tool 同时启动
6. 汇总报告 → 提取共识、分歧、综合建议

详细执行流程

Step 1: 确定审查内容

优先级:

  1. 用户明确指定(文件/文本/commit)
  2. 智能推断:
    • 检查 staged changes:git diff --cached --name-only
    • 检查最近 commit:git log -1 --format=%H
    • 如都无,询问用户

推断后必须确认:

  • "检测到 staged changes,是否审查这些变更?"
  • "检测到最近的 commit [hash],是否审查该 commit?"

Step 2: 领域识别

分析待审查内容,识别所属领域。

识别方法:

  1. 分析内容的主题、关键词、文件类型
  2. 匹配到 .reviews/experts.yaml 中的领域
  3. 如果无法匹配,让 AI 自主判断最相关领域

常见领域映射示例:

| 内容特征 | 识别领域 | |----------|----------| | ML/DL/神经网络/模型训练 | machine-learning | | Prompt/提示词/LLM/Agent | prompt-engineering | | API/微服务/架构设计 | software-architecture | | React/Vue/CSS/前端组件 | frontend-development | | PRD/用户体验/产品需求 | product-design | | 文档/教程/README | technical-writing | | 漏洞/加密/认证授权 | security |

领域识别输出:

识别领域:prompt-engineering
领域描述:提示词工程、LLM 应用、AI Agent
匹配依据:内容包含提示词设计、角色定义、输出格式控制

Step 3: 专家选择

策略:预设为主 + AI 补位

  1. 读取 .reviews/experts.yaml(如不存在,使用内置默认值)
  2. 查找该领域的预设专家
  3. 如预设不足 5 位,AI 智能补充

AI 补充原则(多样性优先):

  • 不与预设专家重复
  • 不与已选专家视角雷同
  • 覆盖不同流派:理论派、工程派、产品派、批评者、跨界者等
  • 考虑知名度和权威性

专家数据结构:

expert:
  name: "专家姓名"
  perspective: "该专家的视角/流派描述"
  source: "preset" | "ai_generated"

选择流程伪代码:

# 1. 读取配置
config = load_yaml('.reviews/experts.yaml') or DEFAULT_CONFIG

# 2. 获取预设专家
preset_experts = config.domains[domain].experts or []

# 3. 计算需要补充的数量
need_count = 5 - len(preset_experts)

# 4. AI 补充
if need_count > 0:
    ai_experts = ai_generate_experts(
        domain=domain,
        existing=preset_experts,
        count=need_count,
        principle="diversity"
    )
    all_experts = preset_experts + ai_experts
else:
    all_experts = preset_experts[:5]

默认领域专家(当无 experts.yaml 时):

当配置文件不存在时,AI 应根据识别的领域自主选择 5 位该领域的顶级专家,遵循多样性原则。

Step 4: 用户确认

默认模式(需确认):

展示专家阵容,等待用户确认:

┌────────────────────────────────────────┐
│ 🎭 专家阵容                            │
├────────────────────────────────────────┤
│ 领域:机器学习                          │
│                                        │
│ 1. Ilya Sutskever (理论派)     [预设]   │
│ 2. Andrej Karpathy (工程派)    [预设]   │
│ 3. 吴恩达 (教育派)             [预设]   │
│ 4. Yann LeCun (批评者)         [AI补充] │
│ 5. Fei-Fei Li (跨界视觉)       [AI补充] │
├────────────────────────────────────────┤
│ [确认执行] [更换专家] [取消]            │
└────────────────────────────────────────┘

使用 AskUserQuestion 工具实现确认:

questions:
  - question: "以上专家阵容是否合适?"
    header: "专家确认"
    options:
      - label: "确认执行"
        description: "使用当前专家阵容开始审查"
      - label: "更换专家"
        description: "我想替换某位专家"
      - label: "取消"
        description: "取消本次审查"
    multiSelect: false

跳过确认的场景:

  • 用户指定 --skip-confirm 参数
  • 示例:expert-review my-file.md --skip-confirm

更换专家流程: 如果用户选择"更换专家",询问:

  1. 要替换哪位专家?
  2. 想换成谁?(或让 AI 重新推荐)

Step 5: 并行审查

⚠️ 关键:必须在单个消息中同时启动所有 5 个 subagent!

使用 Task tool 并行启动 5 个 subagent,每个扮演一位专家。

创建输出目录:

review_dir=".reviews/${content_name}_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$review_dir"

Task tool 参数模板:

对于每位专家,发起一个 Task tool 调用:

subagent_type: "general-purpose"
model: "sonnet"  # 统一使用 sonnet
prompt: |
  你现在是 {{expert.name}}。

  ## 你的背景与视角
  {{expert.perspective}}

  ## 你的审查风格
  请以 {{expert.name}} 的思维方式、知识背景和表达风格来审查以下内容。

  思考:
  - 这位专家会首先关注什么?
  - 这位专家的核心评判标准是什么?
  - 这位专家会如何表达观点和批评?

  ## 待审查内容

  类型:{{content.type}}
  领域:{{domain}}

  ---
  {{content.body}}
  ---

  ## 输出要求

  以第一人称("我")撰写审查意见,体现 {{expert.name}} 的独特视角。

  ### 输出格式

  # {{expert.name}} 的审查意见

  ## 总体印象
  (一段话概述整体看法)

  ## 优点
  1. **优点 1**:说明
  2. **优点 2**:说明

  ## 需要改进的地方
  1. **问题 1**
     - 位置:xxx
     - 问题:xxx
     - 建议:xxx

  ## 核心建议
  (最重要的 1-3 条建议)

  ## 一句话总结
  (用一句话总结审查意见)

  ---

  请将完整审查结果写入:{{output_file}}

并行启动示例(5 个 Task tool 调用):

在单个响应中同时发起 5 个 Task tool 调用:

## Task 1: Ilya Sutskever
subagent_type: "general-purpose"
model: "sonnet"
prompt: [上述模板,expert = Ilya]
description: "Expert review by Ilya"

## Task 2: Andrej Karpathy
subagent_type: "general-purpose"
model: "sonnet"
prompt: [上述模板,expert = Karpathy]
description: "Expert review by Karpathy"

## Task 3: 吴恩达
...

## Task 4: Yann LeCun
...

## Task 5: Fei-Fei Li
...

错误示范(不要这样做):

❌ 先启动 Ilya,等待完成
❌ 再启动 Karpathy,等待完成
❌ 依次完成所有专家

正确示范:

✅ 在单个消息中同时发起 5 个 Task tool 调用
✅ 所有专家并行执行
✅ 等待所有完成后汇总

Step 6: 汇总报告

等待所有 subagent 完成后,读取所有独立报告进行汇总。

汇总步骤:

  1. 读取结果:读取 .reviews/<dir>/review_*.md 所有文件
  2. 提取共识:识别多位专家都认同的观点
  3. 标注分歧:识别专家之间的不同看法,列出各自立场
  4. 综合建议:基于所有意见生成行动建议

生成文件:

  • summary.md:汇总报告
  • meta.json:元数据

summary.md 格式:

## 专家审查汇总

### 审查内容
- 类型:{{content_type}}
- 领域:{{domain}}
- 目标:{{target}}

### 专家阵容

| 专家 | 视角/流派 | 来源 | 状态 | 耗时 |
|------|----------|------|------|------|
| Ilya Sutskever | 理论派 | 预设 | ✅ | 32s |
| Andrej Karpathy | 工程派 | 预设 | ✅ | 28s |
| 吴恩达 | 教育派 | 预设 | ✅ | 35s |
| Yann LeCun | 批评者 | AI补充 | ✅ | 30s |
| Fei-Fei Li | 跨界视觉 | AI补充 | ✅ | 33s |

### 共识点

(多位专家都认同的观点)

1. **观点 1** [Ilya, Karpathy, 吴恩达]
   - 具体描述...

2. **观点 2** [全员共识]
   - 具体描述...

### 分歧点

(专家之间的不同看法)

1. **话题:XXX**
   - Ilya 认为:...
   - LeCun 认为:...
   - 分歧本质:...

### 综合建议

(基于所有专家意见的行动建议)

1. **优先处理**:...
2. **建议改进**:...
3. **可以保留**:...

### 详细报告链接

- [Ilya Sutskever 的审查意见](review_ilya-sutskever.md)
- [Andrej Karpathy 的审查意见](review_andrej-karpathy.md)
- [吴恩达的审查意见](review_andrew-ng.md)
- [Yann LeCun 的审查意见](review_yann-lecun.md)
- [Fei-Fei Li 的审查意见](review_fei-fei-li.md)

meta.json 格式:

{
  "id": "my-prompt_20251229_143052",
  "timestamp": "2025-12-29T14:30:52+08:00",
  "review_target": {
    "type": "file",
    "value": "prompts/my-prompt.md"
  },
  "domain": "prompt-engineering",
  "domain_description": "提示词工程、LLM 应用、AI Agent",
  "experts": [
    {
      "name": "Anthropic 提示词工程师",
      "perspective": "安全与对齐优先",
      "source": "preset",
      "status": "success",
      "duration_seconds": 32.5,
      "output_file": "review_anthropic-prompt-engineer.md"
    }
  ],
  "summary": {
    "total_experts": 5,
    "success_count": 5,
    "failed_count": 0,
    "timeout_count": 0,
    "consensus_points": 3,
    "divergence_points": 2
  }
}

使用示例

示例 1:审查 Prompt 文件

用户:expert-review prompts/my-agent-prompt.md

执行流程:

  1. 读取文件内容
  2. 识别领域:prompt-engineering
  3. 选择专家(预设 2 位 + AI 补充 3 位)
  4. 展示专家阵容,等待确认
  5. 并行审查
  6. 输出汇总

示例 2:审查设计文档(跳过确认)

用户:专家审查 docs/design/auth-design.md --skip-confirm

执行流程:

  1. 读取文件内容
  2. 识别领域:software-architecture
  3. 选择专家
  4. 跳过确认,直接执行
  5. 并行审查
  6. 输出汇总

示例 3:审查最近 commit

用户:expert-review HEAD

执行流程:

  1. 获取 HEAD commit 的变更内容
  2. 分析变更,识别主要领域
  3. 选择专家
  4. 确认后执行

示例 4:智能推断

用户:多角色审查(无指定内容)

执行流程:

  1. 检测 staged changes → 询问确认
  2. 如无 staged,检测最近 commit → 询问确认
  3. 用户确认后继续

触发词

以下词语会触发 expert-review skill:

  • expert-review
  • 专家审查
  • 多角色审查
  • 专家评审