a15a046e4e
Promote ship to the user-facing delivery skill. Kind is short or long from an explicit mode, then self-judgment, then a question, defaulting to short. Old names remain deprecation stubs.
102 lines
3.4 KiB
Markdown
102 lines
3.4 KiB
Markdown
# HTML PRD 评审闭环
|
||
|
||
## 目录
|
||
|
||
- [状态](#状态)
|
||
- [每轮评审](#每轮评审)
|
||
- [批准](#批准)
|
||
- [批准后的变更](#批准后的变更)
|
||
|
||
## 状态
|
||
|
||
ship `current.yaml` 的 spec 字段至少记录:
|
||
|
||
```yaml
|
||
shipId: tenant-permissions
|
||
kind: long
|
||
spec:
|
||
revision: v002
|
||
specStatus: review
|
||
prd: spec/prd-v002.html
|
||
approvedRevision: null
|
||
reviews: spec/review.yaml
|
||
```
|
||
|
||
允许的状态:
|
||
|
||
| 状态 | 含义 | 允许的下一步 |
|
||
|---|---|---|
|
||
| `draft` | 已建立需求,但还没形成可审版本 | 生成 PRD |
|
||
| `review` | 当前版本等待人评审 | 接收意见或批准 |
|
||
| `changes_requested` | 人明确要求修改 | 生成新版本 |
|
||
| `approved` | 指定版本已被明确批准 | 生成 handoff |
|
||
| `handed_off` | handoff 已生成并交给 ACK | 只能创建后续修订 |
|
||
| `superseded` | 版本被后续版本替代 | 只读历史 |
|
||
| `parked` | 用户暂缓 | 用户恢复后继续评审 |
|
||
| `rejected` | 用户明确拒绝 | 不再自动推进 |
|
||
|
||
`review.yaml` 每轮追加一条记录,不覆盖历史:
|
||
|
||
```yaml
|
||
- revision: v002
|
||
status: changes_requested
|
||
feedback:
|
||
- section: permissions
|
||
type: decision
|
||
request: "租户管理员不能查看平台级审计日志"
|
||
disposition: applied
|
||
unresolved:
|
||
- id: Q-002
|
||
question: "跨租户查询是否允许平台运维角色使用?"
|
||
owner: user
|
||
changedFrom: v001
|
||
```
|
||
|
||
不要补写用户没有提供的姓名、时间或审批理由。时间可使用当前环境时间;审批人未知时写
|
||
`user`,不要猜测真实身份。
|
||
|
||
## 每轮评审
|
||
|
||
1. 读取 ship `current.yaml`、当前 HTML 和所有未解决的 review 项;不要只读用户最新一句话。
|
||
2. 将新反馈归类:`change`、`decision`、`question`、`rejected`、`parked`。
|
||
3. 说明每个反馈对范围、架构、任务和验收的影响。
|
||
4. 生成新版本 HTML,保留旧文件。
|
||
5. 更新 ship `current.yaml` 的 spec 字段和 `spec/review.yaml`,并在回复中给出:新版本路径、变更摘要、未决问题、
|
||
是否仍需批准。
|
||
|
||
如果反馈只影响措辞,也生成新版本;评审记录需要保持可追溯。若用户明确说不采纳,记录理由,
|
||
不要悄悄删除意见。
|
||
|
||
## 批准
|
||
|
||
只有以下类型的表达才可作为批准信号:
|
||
|
||
- “批准 specifier 的 v002 PRD”
|
||
- “确认按 v002 开发”
|
||
- “需求文档 v002 通过,可以生成 handoff”
|
||
|
||
批准前必须确认:
|
||
|
||
- 没有未决的阻塞问题;
|
||
- 范围和非目标明确;
|
||
- 关键方案和风险已确认;
|
||
- 任务都有 `expected` 和 `verification`;
|
||
- HTML 版本、状态文件和 review 记录一致。
|
||
|
||
如果用户说“继续”“可以”“看起来不错”,但没有绑定版本,继续保持 `review`,请用户确认
|
||
具体版本。批准后把 `spec.approvedRevision` 写入 ship `current.yaml`,再生成
|
||
`spec/handoff.yaml`;不要同时启动 ship 开发或 ACK。
|
||
|
||
## 批准后的变更
|
||
|
||
批准后的需求不能原地编辑。用户提出变化时:
|
||
|
||
1. 保留已批准版本和 handoff;
|
||
2. 将当前状态标为 `superseded` 或创建新的修订链;
|
||
3. 生成下一个 PRD 版本;
|
||
4. 标记受影响的任务、验收、风险和 ACK handoff 字段;
|
||
5. 重新等待用户批准。
|
||
|
||
已经进入 ship 开发的任务不会因 HTML 更新而自动改变。需要执行变更时,明确告诉用户应
|
||
修订本 ship 的 `tasks.yaml` 或重新规划,不能静默改写执行记录。
|