# Release Retro · postcard-feature v1.0.0

| 字段 | 内容 |
|---|---|
| Release | v1.0.0（首版，MAJOR）|
| 触发时间 | 2026-05-20 10:00（tag push 后）|
| 主持 | product-lead |
| 参与 | 全员 12 同事（4 场景出场 8 人 + content-writer + ml-engineer + tech-lead + qa-engineer）|
| Skill | 按 [`agf-running-release-retro`](../../../.claude/skills/agf-running-release-retro/SKILL.md) 7 步流程 |
| 适用 | MAJOR / MINOR 强制 / PATCH 跳过——v1.0.0 是 MAJOR 必走 |
| 归档路径 | `docs/reviews/retro-v1.0.0-2026-05-20.md`（本文是脱敏版） |
| deck 集成 | spec §14.1 slide 77-78（§5 retro 部分）|

---

## §1 触发（step 1）

```bash
$ git push --tags
To github.com:org/agf
 * [new tag]         v1.0.0 -> v1.0.0

# tag push 后 product-lead 在会话窗口自动调
$ /agf-release-retro v1.0.0
[product-lead] 启动 retro v1.0.0 · MAJOR release applicable gate ✓
```

详见 deck slide 77 [A11 retro 7 步流程图](../../diagrams/png/A11-release-retro-7step.png)。

---

## §2 范围（step 2）

- **版本范围**：v0.0.0 → v1.0.0（首版 release）
- **commit 数**：47 commits（spec / ADR / dev / review / qa / fix）
- **PR 数**：5（feature/postcard-link / feature/postcard-be / feature/postcard-fe / fix/pii-redact / fix/sit-audit-evidence）
- **参与角色**：8（PL / TL / FE / BE / AI / ML / reviewer / qa）

## §3 数据（step 3）

| 阶段门 | 计划耗时 | 实际耗时 | 偏差 |
|---|---|---|---|
| PRD（含 brainstorming）| 4h | 5h | +25% |
| ADR | 1h | 1.5h | +50% |
| 派单 | 0.5h | 0.5h | 0% |
| 实施 + Unit + SIT 自跑 | 2 天 | 2.5 天 | +25% |
| Code Review + SIT Audit | 1h | 4h（第一轮 fail + 二轮 pass）| **+300%** ⚠️ |
| E2E | 1.5h | 2h | +33% |
| UAT 业务签字 | 1h | 2.5h（3 业务方协调）| +150% |

**失败回路次数**：1（reviewer first round Request Changes → dev 修 PII + 补 SIT 证据 → 二轮 pass）

**Cost 实际**：5 道盲测 30 次生成 = ¥6.42（远低于预算 ¥10）

## §4 Keep · 有效做法 团队共识（step 4）

| # | 做法 | 提出 | 共识 |
|---|---|---|---|
| K1 | brainstorming 4 轮充分（用户 ↔ PL）→ PRD AC 5 条精准 → 后续 0 次 scope creep | PL | ✓ 全员 |
| K2 | ai-agent-dev 把 prompt 用 .md 文件管理 → 改 prompt 也走 PR review → 历史可追 | reviewer | ✓ 全员 |
| K3 | reviewer 双 verdict（代码 + SIT Audit 独立）→ 一次性指出全部问题，dev 改完一次过 | dev | ✓ 全员 |
| K4 | ml-engineer ADR 含 4 厂商 × 3 类型矩阵 + 4 选项对比 → 决策有据可查 | TL | ✓ 全员 |

## §5 Improve · 改进项（Owner + Due 强制）（step 5）

按 [`.claude/skills/agf-running-release-retro/SKILL.md`](../../../.claude/skills/agf-running-release-retro/SKILL.md) §5 强制：**每条 Improve 必含 Owner + Due**，否则 retro 不能提交。

| # | 问题 | 改进 | Owner | Due |
|---|---|---|---|---|
| I1 | reviewer 第一轮 fail（PII + prompt-injection）耗时 4h → 应早发现 | 在 dev 阶段加 pre-review checklist（自查 PII / 安全 / SIT 4 项），跑通才发 PR | @ai-agent-dev | 2026-05-30 |
| I2 | UAT 协调 3 业务方耗时 2.5h | 业务方 UAT 改异步（共享 Notion 表格，48h 内填评分）| @product-lead | 2026-06-05 |
| I3 | PRD 比计划长 25%（brainstorming 多 1 轮）| 不改（多 1 轮 brainstorming 换 0 scope creep，账算得过）| — | — |
| I4 | 文案 cliché 模板问题（题 3 fail）| 在 LLM prompt 加"避免咖啡馆 / 夜色降临等套话"约束 | @ai-agent-dev | 2026-06-15（v1.1 issue #312）|

**反例**（spec §5 强调避免的写法）：
- ❌ "以后加监控"（无 Owner / 无 Due → 一定不会做）
- ❌ "下次注意"（无可追踪）
- ✅ I1-I4 全部含 Owner + Due → 可跟进

详见 deck slide 77 [A11 retro 7 步流程图](../../diagrams/png/A11-release-retro-7step.png) §5 Owner + Due 强制示例。

## §6 文档（step 6）

本 retro 归档：`docs/reviews/retro-v1.0.0-2026-05-20.md`

同步：
- I1-I4 加到 GitHub Issues 跟踪（labels: `retro-v1.0.0` / `priority:high`）
- 本文脱敏版进培训 deck（去掉真实姓名 / 内部 cost 数字）

## §7 跟进（step 7）

| Improve | 跟进机制 |
|---|---|
| I1 pre-review checklist | 加到 `.claude/agents/ai-agent-dev.md` DoD 段 |
| I2 UAT 异步 | product-lead 下个 sprint kickoff 提议 |
| I4 prompt 优化 | 在 v1.1 sprint planning 排进 |

下次 retro（v1.1.0）回头查 I1-I4 完成度。

---

## 设计取舍（meta）

### 为什么 PATCH 跳过 retro

- v1.0.1（fix typo）做 retro 是"为复盘而复盘"
- 真实价值在一线踩坑沉淀（直接 commit 或 issue 即可）
- 节省全员 2h 协调

### 为什么 retro 主持必是 PL

- PO+SM 合并后，PL 是唯一对"流程改进"负责的角色
- TL 仅在涉及架构决策类 Improve 时被 cc
- dev / reviewer / qa 都是"被复盘 + 提改进"的角色，不能既裁判又球员

---

## 引用

- 上游 UAT：[05-uat-report.md](./05-uat-report.md)
- 下游 release notes：[07-release-notes.md](./07-release-notes.md)
- deck slide 引用：77 retro 7 步 / 78 retro 真实样例
