with one click
marchen-review
对照变更意图检查代码实现的完整性和一致性,支持基于 chrome-devtools MCP 的 UI 场景验证。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
对照变更意图检查代码实现的完整性和一致性,支持基于 chrome-devtools MCP 的 UI 场景验证。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
预览 propose 生成的变更摘要。从 proposal/design/specs/tasks 浓缩为终端卡片,便于人快速 review,决定下一步是 apply 还是改 propose。
提出新变更,创建并填充所有 artifact。适用于用户想快速描述需求并生成完整的 proposal、specs、design、tasks。
按变更的 tasks.md 逐个实现任务。适用于用户想按任务清单逐步实现代码。
归档已完成的变更。检查完成度后执行归档,适用于实现完毕后收尾。
进入探索模式 — 思考想法、调查问题、厘清需求。适用于用户想在动手之前先理清思路。
一键式轻量变更流程。创建 lite 变更、实现任务、询问归档,一气呵成。适合 bug 修复、小改动。
| name | marchen-review |
| description | 对照变更意图检查代码实现的完整性和一致性,支持基于 chrome-devtools MCP 的 UI 场景验证。 |
对照变更的 artifact 检查代码改动,必要时驱动浏览器验证 UI 行为,报告遗漏、偏差和阻塞。
输入:用户的请求应包含变更名称,或可从上下文推断。
流程
选择变更
有名称就用,没有则:
marchen list --json + AskUserQuestion 让用户选显示:"Review 变更: <name>"
嗅探 diff 中的 UI 改动
执行 git diff --name-only HEAD,判断改动是否涉及前端 UI(组件、样式、模板、静态资源等)。命中则记下命中文件,用于下一步的提示。
AskUserQuestion 选择 review 模式
用 AskUserQuestion 让用户三选一:
若上一步命中 UI 文件,在问题描述里附一句:"检测到 diff 涉及 UI 文件(<列出命中文件>),建议选 UI 验证或两者都做。" 未命中时不附加提示,默认推荐"代码 review"。
保存用户选择为 <mode>。
获取意图与改动(公共前置)
marchen instructions <name> apply --json,从返回 JSON 的 context 数组里读取 status 为 "filled" 的 artifact(proposal/specs/design/tasks)作为变更意图git diff HEAD;为空则 git diff HEAD~1;仍为空则报告 "未检测到代码改动" 并结束diff 大到可能挤占 context 时,先 git diff --stat HEAD 看摘要,再按需读单个文件 diff。
代码 review(mode 为 "代码 review" 或 "两者都做" 时执行)
逐条对照变更意图和代码改动,输出报告:
任务完成度 — tasks 中每个任务是否有对应改动:
一致性检查 — 实现是否符合 design 决策:
需求覆盖 — specs 中需求是否被覆盖:
发现的问题(如有)
全部通过:输出 "✅ 代码 review 通过。"
遇到无法判断的情况(tasks 描述与 diff 对不上但可能是改名了、spec 表述含糊等),直接用 AskUserQuestion 就地问用户,不要积攒到最后。
UI 验证(mode 为 "UI 验证" 或 "两者都做" 时执行)
尝试调用 chrome-devtools MCP 的只读探测工具(例如列出已打开的页面)。工具不存在或调用失败 → 在报告里写:
⏭ chrome-devtools MCP 不可用,跳过 UI 验证。 安装方法:
npx chrome-devtools-mcp@latest,并参考所用 AI 工具的 MCP 配置文档将其注册。
然后跳过本节剩余步骤。
优先从变更的 specs 文件中提取所有 #### 场景: 块(按 spec 文件分组)。
若 specs 不存在或不含场景 → 退化到从 tasks/proposal 推断 UI 相关验证点,并在报告中标注 "基于 tasks 推断,覆盖度可能不完整"。
两者都没有可提取场景 → 报告 "未找到可验证的 UI 场景" 并跳过本节。
从项目文件(脚本、框架配置、环境变量、README 等)推断 dev server 地址和启动命令,不要硬猜端口。
推出候选 URL 后用 chrome-devtools MCP 的导航工具打开,再用快照工具确认页面像被测应用(合理 title、含框架 root 节点或变更描述涉及的标志性内容)。看着不像被测应用 → 当作未能推断。
推不出 URL → 全部场景 ⏭ "URL unknown",在报告里说明推断依据,提示用户确认地址后重新运行 review,跳过本节执行步骤。
推出来 URL 但导航失败(连接拒绝)→ 主会话 AskUserQuestion,附上推断依据和启动命令:
选"帮我起":
run_in_background 执行推断到的启动命令(如 pnpm dev、npm run dev)选"我手动起":等用户告知启动完成后继续;用户可以新会话执行 /marchen:review 重跑。
选"跳过 UI":所有场景 ⏭ "dev server 未启动",跳过后续步骤。
对每个待验证场景:
遇到阻塞(登录墙、权限不足、缺数据、表单需要真实输入等):主会话可以就地 AskUserQuestion——例如"需要登录账号才能继续,提供测试账号?/ 跳过这个场景 / 暂停 review",而不必积攒到最后。
仍无法继续的场景 → 记录 ⏭ + 阻塞原因,跳到下一个。 场景翻译不出具体操作(例如纯后端行为描述)→ ⏭ "不适合 UI 验证"。
## UI 验证(chrome-devtools MCP)
测试目标:<URL 或 "未确定">
✅ <场景标题> — 通过
说明:<可选简述>
❌ <场景标题> — 失败
证据:<console error 摘要 / 页面文案 / 关键截图路径>
⏭ <场景标题> — 跳过:<阻塞原因>
展示报告并按结果分支
marchen archive <name> 归档。"marchen archive <name>如本次 review 启动了后台 dev server,再次提醒用户进程信息(PID/端口)。
护栏
git diff --stat,按需读单个文件,避免灌爆 context