From apple-dev
Use after completing a feature implementation, or when the user says 'feature review', 'review user journey'. Performs product+UX comprehensive review validating feature completeness from user journey perspective. Complements /ui-review (code compliance) and /design-review (visual quality).
npx claudepluginhub n0rvyn/indie-toolkit --plugin apple-devThis skill uses the workspace's default tool permissions.
从产品经理和 UX 设计师视角审查功能实现。关注用户旅程完整性、操作反馈、空状态处理。
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
从产品经理和 UX 设计师视角审查功能实现。关注用户旅程完整性、操作反馈、空状态处理。
/run-phase 中 Phase 的 Review checklist 包含 /feature-review需要两个输入:
功能 spec(按优先级查找):
docs/05-features/功能名.md代码范围:
如果无 spec,要求用户提供功能的预期行为描述。没有预期行为就无法判断"是否完整"。
读取 docs/01-discovery/project-brief.md(如有)——了解目标用户和核心价值。
从 spec 提取所有用户操作("用户可以..."),为每个操作搜索对应代码入口。
代码检查:搜索 Button action, NavigationLink, .onTapGesture, .onSubmit, .swipeActions 等交互入口。
macOS 补充:同时搜索 CommandMenu, .commands, .keyboardShortcut 作为功能入口(macOS 用户通过菜单和快捷键触发操作)。
输出格式:
[Story] {用户操作描述} → ✅ {file:line} / ❌ 无对应入口
追踪页面导航和 modal 的推送/关闭:
代码检查:
openWindow/dismissWindow 的窗口打开和关闭路径;NavigationSplitView sidebar 的选中状态覆盖检查项:
输出格式:
[旅程] {入口} → {页面A} → {页面B} — ✅ 可完成 / ❌ 死路:{描述}
分析从根视图到最深页面的 NavigationLink/push 层数。
对每个用户操作(按钮点击、表单提交、删除等),检查三态反馈:
| 反馈 | 检查 |
|---|---|
| 成功 | 操作后是否有 toast/alert/页面变化/导航? |
| 失败 | 是否有 error handling + 用户可见提示? |
| 进行中 | 异步操作是否有 loading/disabled 状态? |
与 /ui-review B1 的区别:/ui-review 从单文件角度检查四态完整性;这里从用户旅程角度检查——用户做了一个操作后,是否知道发生了什么。
代码检查:搜索破坏性操作关键词(delete, remove, cancel, logout, 删除, 取消, 退出)对应的 action。
检查项:
.confirmationDialog 或 .alert 确认?不可逆操作无确认 = 🔴
代码检查:对每个 List/ForEach/LazyVStack,搜索 .isEmpty 或 count == 0 的条件处理。
检查项:
ContentUnavailableView 或自定义空状态?基于代码分析生成针对性问题(不照搬通用模板):
请在设备上验证:
- [ ] 从 [入口A] 到 [目标B] 能否顺利完成?每步的下一步是否明确?
- [ ] 首次使用时是否理解如何开始?(无需教程即可操作)
- [ ] 错误场景下(断网/空数据/权限拒绝)用户是否知道发生了什么和怎么办?
- [ ] 操作完成后是否有"完成感"?(视觉反馈、状态变化)
## Feature Review Report
### 功能
{功能名称} — {一句话描述}
### Part A: 产品完整性
- User Story 覆盖: N/M
- 死路检测: N 条路径,M 条死路
- 导航深度: 最深 N 层
### Part B: UX 完整性
- 操作反馈: N 个操作,M 个缺失反馈
- 关键操作确认: N 个破坏性操作,M 个无确认
- 空状态: N 个列表,M 个无空状态处理
### 🔴 必须修复
- [file:line] {描述}
建议:{具体修复方案}
### 🟡 建议修复
- [file:line] {描述}
建议:{具体修复方案}
### Part C: 设备验证清单
- [ ] {针对性检查项}
### 总结
- 产品问题: N(🔴 X / 🟡 Y)
- UX 问题: N(🔴 X / 🟡 Y)
- 设备验证项: N
| 级别 | 定义 | 示例 |
|---|---|---|
| 🔴 必须修复 | 用户旅程中断或关键操作无防护 | 死路、不可逆操作无确认、核心 Story 无入口 |
| 🟡 建议修复 | 体验不完整但不中断 | 缺少空状态、操作无成功反馈、导航过深 |
| ⚪ 通过 | 符合标准 | - |