# Wrap-up 协议（**强制**）

> 从 STATUS.md 拆出（2026-06-09）—— 只在 session 收尾时需要，不必每次 onboarding 读。


### 自动度

- **半自动**：AI 在 wrap-up 时按本协议主动跑（依赖协议 enforcement，写在 `tvu-design-{code,mockup}` skill 起手协议 wrap-up 步骤里）
- **SessionEnd hook 兜底**：`~/.claude/settings.json` 配 hook 检测 "Last updated 是否为今天"，不是则警告（机械触发，逃不掉）

### STATUS.md 必改项（每 session）

> **2026-06-09 changelog 拆分后的规则**：STATUS.md 顶部 "Last updated" blockquote **只放当日一条摘要 + 指针**，不再内联累积长 changelog（曾长到 49KB 单行、整读超 token 上限 → "已读不执行" 的机械成因之一）。**完整 session changelog prepend 到 [`docs/internal/STATUS-CHANGELOG.md`](./internal/STATUS-CHANGELOG.md) 顶部**；wrap-up 时把上一条当日摘要 prepend 进 archive、再把今天的写进 STATUS.md 顶部。

- [ ] 顶部 **"Last updated" 日期改到今天 + 当日摘要替换**（hook 自动核验日期；旧摘要 prepend 进 STATUS-CHANGELOG.md）
- [ ] "当前版本" 段更新（如有 release）
- [ ] "Version Roadmap" 各 bucket 删除已完成项 / 加新发现项
- [ ] "Active 后续工作" 段刷新剩余项数
- [ ] **[`retrospection/design-spec-canonical-alignment-tracker.md`](./internal/retrospection/design-spec-canonical-alignment-tracker.md) 同步**：把本 session 完成的项加入 tracker（完成日期 + 耗时）

### Release wrap-up 必改项（仅 release tag pushed 时强制）

> **协议规则**（2026-05-11 落实 — v0.1.0/v0.1.1 silent fail 盲点修复点）：
>
> **Release tag pushed + CI green 不等于 publish 成功。必须 verify GitHub Packages 页实物显示包 + 版本号；CI green 只代表 step exit 0，不代表 registry 接受。**

- [ ] CI workflow run 全 green（actions 页 status PASS）
- [ ] **Packages 页 actual 显示 `@scope/package@<new-version>` 实物**（不能跳此步 — 之前 v0.1.0/v0.1.1 silent fail 根因）
- [ ] STATUS.md "当前版本" 段 "已 publish" 行加 Packages 页 URL link as evidence
- [ ] 复盘 retrospect 含 Packages 页 actual 状态（PASS / fail 都记，fail 写诊断）

### Retrospection 触发判断（分级，不是每次必写）

| 触发条件 | 是否必写 retrospect |
|---|---|
| 阶段性 release（patch / minor / major 完成） | ✅ 必写 |
| 踩了反模式（如 library-key-confusion） | ✅ 必写 |
| 学到通用工程经验 / 发现新 pattern | ✅ 必写 |
| 完成单个 backlog entry 但无新认知 | ❌ 跳过（避免噪音） |
| 纯讨论 / 调研 / 评审 | ❌ 跳过 |

复盘文件位置：`docs/internal/retrospection/<YYYY-MM-DD>-<topic>.md`

**不更新 STATUS.md / 漏复盘 → 下次 session 又要从碎片重组**（同 2-3 周状态混乱的根因）。
