# specifier
把复杂需求整理成经过多轮人工评审的 HTML PRD,并在批准后生成交给 ship 执行的需求 handoff。
## 什么时候使用
- 要做跨模块、跨页面、跨服务或带数据迁移的复杂功能。
- 要先写 PRD、比较方案、梳理风险,再进入开发。
- 需要把 PRD 给人反复评审,确认后再交给 `ship`。
小改动直接使用 `ship`;已知 Bug 使用 `/hunt`;单次架构取舍使用 `/think`。
## 使用前准备
- 同时安装 `ship`;批准后的开发走 `ship` long 模式。
- 项目应位于 Git 仓库中,便于读取现有代码、文档和历史决策。
- 用户需要参与 PRD 评审,并明确批准具体版本。
- 不需要外部账号或网络资源;生成的 HTML 应能离线打开。
## 使用示例
```text
用 specifier 处理“给后台增加多租户权限管理”这个复杂需求:先调研现状,生成 HTML PRD,
我会逐轮评审。批准后再生成 ship handoff,不要提前派开发。
```
## Agent 会做什么
1. 判断需求是否需要重量级规格化,读取项目现状和相关决策。
2. 形成目标、范围、非目标、方案、交互/架构、风险、依赖和可观测验收。
3. 生成可离线打开的版本化 HTML PRD;保留每个历史版本并记录本轮变更。
4. 根据用户意见反复修改,直到用户明确批准指定版本。
5. 仅在批准后生成 `spec/handoff.yaml`,供 `ship` 创建和执行任务。
6. 用户需要查看 HTML 时,按独立 `previewer` 的契约直接执行共享 Node 脚本,返回 HTTP URL
和有效期;跨设备查看时可显式设置监听地址。
Specifier 只负责需求规格,不修改业务代码,也不替代 ship 的开发和独立测试。
## 如何判断完成
- 评审阶段:得到一个带版本号的 HTML PRD、变更记录、风险和未决问题。
- 交接阶段:用户明确批准某个版本,且 `spec/handoff.yaml` 绑定了该版本和完整验收信息。
- 开发阶段:改用 `ship` long 模式,任务和证据写在同一个 ship id 下。