Files
laily a15a046e4e feat(ship): merge short-ship and long-ship into one entry
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.
2026-10-24 14:27:19 +08:00

102 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 或重新规划,不能静默改写执行记录。