with one click
ae-review
// 统一审查技能。支持代码域(Git 差异、全量文件、指定路径、会话变更等)和文档域(需求文档、计划文档、测试文档、通用文档)的分层角色审查。通过 domain 参数切换审查域。
// 统一审查技能。支持代码域(Git 差异、全量文件、指定路径、会话变更等)和文档域(需求文档、计划文档、测试文档、通用文档)的分层角色审查。通过 domain 参数切换审查域。
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | ae:review |
| description | 统一审查技能。支持代码域(Git 差异、全量文件、指定路径、会话变更等)和文档域(需求文档、计划文档、测试文档、通用文档)的分层角色审查。通过 domain 参数切换审查域。 |
| argument-hint | [mode:*] [domain:code|domain:document] [from:<ref>] [full] [full:<path>] [session] [plan:<path>] [文档路径] |
审查回答质量如何(HOW WELL)——代码是否正确、安全、可维护;文档是否一致、可行、完整。
此技能的持久输出是一份结构化审查报告,包含按严重级别排序的发现、自动修复结果和覆盖范围。
auto 修复在综合阶段由编排器应用。pre_existing: true,不计入审查结论。.opencode/ 始终排除。需求/计划文档默认排除,仅在满足"明确指定"条件时纳入。auto;需要用户判断 → gated/manual。domain 参数为互斥值:code 或 document。| 模式 | 交互 | 自动修复 | 展示 | 产物 |
|---|---|---|---|---|
| 交互(默认) | 询问策略决策 | 仅 auto | 完整报告 + 选项 | 写入 |
| 自动修复 | 无 | 仅 auto | 仅结果摘要 | 写入 |
| 只读 | 无 | 无 | 完整报告 | 无 |
| 无头 | 无 | 仅 auto | 结构化文本 | 写入,返回"审查完成" |
始终排除(任何情况下不可覆盖):
.env、.env.*(保留 .env.example、.env.template)——在文件收集阶段即从文件列表中移除,后续任何阶段不可读取或引用.opencode/ 目录下的所有文件docs/ae/reviews/*、docs/ae/solutions/*全域默认排除(域安全需求 R4-R5):
docs/ae/brainstorms/ 下的文件docs/ae/plans/ 下的文件"明确指定"条件——满足任一则纳入:
domain:document 模式下确定性搜索机制(阶段 1)找到了文档——搜索成功等同于明确指定解析 $ARGUMENTS 中的可选标记。以 mode: 或 domain: 开头的标记是标志,不是 ref——从参数中移除它们。
| 标记 | 效果 |
|---|---|
domain:code | 代码域审查(默认) |
domain:document | 文档域审查 |
mode:autofix | 自动修复模式 |
mode:report-only | 只读模式 |
mode:headless | 无头模式(程序调用) |
from:<ref> | 使用 Git diff 确定范围,以指定 ref 作为差异基准(base:<ref> 映射到 from:<ref> 保持兼容) |
recent:<N> | 审查最近 N 次 Git 提交 |
full | 审查项目中所有文件(不依赖 Git) |
full:<path> | 审查指定路径下的所有文件(不依赖 Git) |
session | 审查本次会话中变更的文件 |
plan:<path> | 加载计划用于需求验证 |
冲突检测: 以下范围标记互斥,同时指定时停止并报错:from: / recent: / full / full:<path> / session。
domain 参数传递到后续所有阶段(排除规则、审查者选择、综合流水线)。
退出条件: 模式、域和范围标记解析完成,无冲突。
domain:code)审查范围通过以下方式确定,按参数优先级选择。在进入阶段 2 之前,必须完成文件收集、排除规则应用和用户确认。
from:<ref> 或 recent:<N> 或自动检测)阅读 references/scope-detection.md 获取完整的 Git 范围检测流程。
检测完成后:
full 或 full:<path>)不依赖 Git。扫描项目文件系统:
full 使用项目根目录,full:<path> 使用指定路径node_modules/、.git/、dist/、build/ 等常见非审查目录全量扫描模式下,子代理使用完整文件模式(Full content:),不区分主要/次要/预存。
session)审查本次会话中变更的文件:
按优先级尝试:
references/scope-detection.md,按优先级执行范围检测流程(状态文件 → 项目配置 → resolve-base.sh → 友好降级).git 目录),回退到全量扫描模式退出条件: 文件列表已确定,排除规则已应用,用户已确认范围(无头/自动修复模式下跳过用户确认)。
domain:document)docs/ae/brainstorms/ 和 docs/ae/plans/ 中查找最近修改的文件
退出条件: 文档路径已确定,文档已读取。
意图发现: 结合对话上下文编写 2-3 行意图摘要,传递给每个审查者。
计划发现(需求验证): 按优先级检查:plan: 参数 → 自动发现 docs/ae/plans/ 中的最近计划。记录置信度标记(explicit/inferred)。
通过分析文档内容(而非路径)判断类型:
分类信号(按优先级):
topic 字段暗示内容主题docs/ae/brainstorms/ → 倾向 requirements;docs/ae/plans/ → 倾向 plan退出条件: 代码域——意图摘要已编写,计划发现已完成;文档域——文档类型已分类。
调用 ae-review-contract 工具,传入阶段 2 确定的审查类型。
kind: code,代码域审查者阅读 references/file-routing-table.md 和 references/persona-catalog.mdkind: documentkind: plankind: testkind: general不要在阶段 2 完成之前调用此工具。
standards-reviewer(含配置文件审查)reliability-reviewer(含基础设施审查)data-migrations-reviewer(含数据库审查)maintainability-reviewer(含脚本审查)has_typescript、has_config、has_script 仅作为透明输入和路由上下文,不单独激活条件审查者;工具定义/代理配置变更使用 has_tooling 或 has_agent_config 激活 agent-native-reviewer为 standards 角色查找所有相关 AGENTS.md 文件路径。
始终包含:coherence-reviewer、feasibility-reviewer
条件角色激活:
ae:doc-humanize / ae:doc-structure 转换产物,或 frontmatter/正文记录了 upstream、origin 等上游转换来源退出条件: 审查团队已确定并公布。
使用中层模型。生成唯一运行 ID。
阅读 references/subagent-template.md 构建每个子代理的提示。不要在阶段 3 完成之前加载此文件。
| 变量 | 值 |
|---|---|
{domain} | code |
{persona_file} | 代理 markdown 文件完整内容 |
{schema} | 发现 schema 内容 |
{intent_summary} | 阶段 2 输出 |
{file_list} | 变更文件列表 |
{content} | diff 内容或完整文件内容或会话变更内容 |
{content_mode_label} | 增量审查时为 Diff:,全量审查时为 Full content:,会话变更模式时为 Session changes: |
{run_id} | 运行标识符 |
{reviewer_name} | 审查者名称 |
| 变量 | 值 |
|---|---|
{domain} | document |
{persona_file} | 代理 markdown 文件完整内容 |
{schema} | 发现 schema 内容 |
{document_type} | "requirements"、"plan"、"test" 或 "general" |
{document_path} | 文档路径 |
{document_content} | 文档完整文本 |
{run_id} | 运行标识符 |
{reviewer_name} | 审查者名称 |
向每个文档域代理传递完整文档——不要按章节拆分。
所有角色子代理作为并行子代理生成。角色子代理相对于项目是只读的。每个代理将完整 JSON 写入 docs/ae/reviews/{run_id}/{reviewer_name}.json,返回精简 JSON。
错误处理: 如果代理失败或超时,使用已完成代理的发现继续。在覆盖范围部分注明失败的代理。
退出条件: 所有审查子代理已返回结果(或超时处理完成)。
所有代理返回后,阅读 references/synthesis-and-presentation.md 了解综合流水线(校验、置信度门控、去重、共识提升、残余风险提升、解决分歧、autofix 提升、路由划分、排序)、展示和审查后流程。不要在阶段 4 完成之前加载此文件。
@./references/scope-detection.md
@./references/file-routing-table.md
@./references/persona-catalog.md
@./references/subagent-template.md
@./references/findings-schema.json
@./references/synthesis-and-presentation.md
@./references/review-output-template.md
@./references/resolve-base.sh