---
Spec-Type: control
Initiative: 20260414-B2-check-update-diff
Status: completed
Owner-Session: ys-team
Write-Scope:
  - scripts/ys-team.mjs
  - README.md
  - .ys_team/status.md
  - docs/specs/completed/20260414-B2-check-update-diff/
Depends-On:
  - 20260414-B1-baseline-changelog
Verification: "模拟落后版本时，check-update 输出包含落后版本列表、主要变化、关键文件和迁移建议；本地已最新时输出保持简洁"
---

# B2：check-update 升级 diff

## Background

`check-update` 命令现只输出本地版本与 npm 最新版本的对比。用户看到"落后"后不知道该改什么，采用摩擦大。

## Goals

`check-update` 在检测到落后时，从最新 npm tarball 中的 `examples/baseline/CHANGELOG.md` 提取变更摘要，输出"落后版本 + 主要变化 + 关键文件 + 迁移建议"，降低用户升级摩擦。

## Deliverables

- `scripts/ys-team.mjs` 中 `check-update` 命令升级：拉取最新 npm tarball 中的 `CHANGELOG.md`，提取相关版本段落输出
- `README.md` 更新 check-update 使用说明

## Acceptance Criteria

- [ ] 本地版本落后时，`npx ys-team check-update` 输出包含：落后的版本列表、每版本主要变更摘要、migration hint（如有）
- [ ] 本地版本最新时，输出不变（保持简洁）
- [ ] README 中 check-update 章节反映新行为

## Collaboration Summary

- Participants: 产品演进负责人
- Reporter: 产品演进负责人
- Estimated Cost: 低
- Escalation: 无
- Submit Recommendation: 已在本次连续交付中执行

## Discussion Digest

- Rounds: 1
- Conclusion: PASS
- Extraction Strategy: 优先从最新 npm tarball 提取 `examples/baseline/CHANGELOG.md`，失败时降级到 changelog 链接
- Why: 不依赖仓库主干内容即可对齐已发布版本，同时保留网络失败时的可用提示

## Verification

- 运行脚本模拟：验证“本地已最新”输出仍保持简洁
- 用本地 `npm pack` 生成 tarball，调用导出 helper 模拟“本地落后”输出，确认包含版本列表、主要变化、关键文件和迁移建议
- 手工检查 README 的 `check-update` 说明

## Acceptance Evidence

- `docs/specs/completed/20260414-B2-check-update-diff/review.md`
- `docs/specs/completed/20260414-B2-check-update-diff/work.md`
- `docs/specs/completed/20260414-B2-check-update-diff/qa-report.md`
- `docs/specs/completed/20260414-B2-check-update-diff/evidence/20260415-closeout.md`

## Documentation Updates

- `scripts/ys-team.mjs`
- `README.md`

## Risks

- 需要在 check-update 时访问 npm registry 和 tarball，有网络依赖；已设计为失败时降级到 changelog 链接

## Rollback Plan

恢复 scripts/ys-team.mjs 的 check-update 实现，README 恢复旧说明。
