Date: 2026-03-18 Status: current code-aligned reference
本文件是 skill 生命周期的单一规范入口。结论以当前代码实现为准,并已经同步到领域模型、业务流程、API、前端、搜索和兼容层文档。
- skill 生命周期不再被建模为一个混杂状态机,而是拆分为容器状态、版本状态、审核工作流状态和可见性覆盖层
- 前端不再从
status + hidden + latestVersionStatus + viewingVersionStatus拼装状态,而统一消费后端 lifecycle projection - destructive action 和 reversible action 必须分离;
withdraw-review只表示撤回提审,不表示删除版本 - 对外仍可保留
latest协议词汇,但内部语义必须严格等价于 latest published
ACTIVEARCHIVED
说明:
hidden是独立治理覆盖层,不属于Skill.statusSkillStatus.HIDDEN不再视为有效生命周期语义
DRAFTPENDING_REVIEWPUBLISHEDREJECTEDYANKED
状态含义:
DRAFT:可再次提交审核或删除的非公开版本PENDING_REVIEW:冻结待审版本PUBLISHED:当前可分发版本REJECTED:审核拒绝后保留的版本YANKED:曾发布、现已撤回分发的版本
PENDINGAPPROVEDREJECTED
ReviewTask 仅表达审核流程,不再被前端当作展示态来源。
Skill.latestVersionId的唯一语义是 latest published pointer- 它只能指向
PUBLISHED版本 - 若 skill 没有任何已发布版本,则允许为
null latest系统保留标签自动跟随该指针
详情页、我的技能、我的收藏、搜索等读模型统一基于以下 projection:
headlineVersion:当前页面主展示版本publishedVersion:最新已发布版本ownerPreviewVersion:owner / namespace 管理者可见的待审核预览版本resolutionMode:PUBLISHED/OWNER_PREVIEW/NONE
约束:
- 公开浏览、安装、下载、搜索只认
publishedVersion - owner 详情页只有在不存在
publishedVersion时,才允许headlineVersion = ownerPreviewVersion - promotion、compat latest、默认下载等公开分发行为都只能绑定
publishedVersion
- 普通用户上传后直接创建
PENDING_REVIEW版本 - 同时创建
PENDINGreview task - 不会创建初始
DRAFT - 不会更新
latestVersionId
PENDING_REVIEW -> PUBLISHED- review task 标记为
APPROVED Skill.latestVersionId指向该版本- skill 展示元数据从发布版本刷新
PENDING_REVIEW -> REJECTED- review task 标记为
REJECTED - 版本保留,可后续删除
withdraw-review的统一语义是PENDING_REVIEW -> DRAFT- 同时删除关联的
PENDING review_task - 该操作是可逆、非破坏性的
- 当前代码只允许提交人本人撤回
- 若发现旧的
PENDING_REVIEW版本,会先把旧版本自动降回DRAFT - 然后创建新的待审版本
- 自动撤回与手动撤回必须保持同一语义
- rerelease 当前本质上是从已发布版本复制并重新走发布流程
- 当前实现允许特权路径直接产出新
PUBLISHED版本 - 该能力应被理解为发布路径特例,不是生命周期展示态
- 隐藏:只改
hidden=true - 恢复:只改
hidden=false - 归档:
Skill.status = ARCHIVED - 取消归档:
Skill.status = ACTIVE - yank:
PUBLISHED -> YANKED
- yank 已发布版本时,若命中当前
latestVersionId,必须重算 latest published pointer - 若仍有其他
PUBLISHED版本,则指向最新一个 - 若已无任何
PUBLISHED版本,则latestVersionId = null
- 对外协议可以继续暴露
latestVersion、latest、默认下载等概念 - 但它们都必须严格表示“最新已发布版本”
- compat 层内部实现必须从统一 lifecycle projection 的
publishedVersion映射,不允许自行推导“当前版本”
- 页面状态展示统一消费 projection
- 不再新增旧兼容字段依赖
hidden仅作为治理标记展示,不参与版本状态拼装
withdraw-review:仅提交人本人- 删除版本:owner 或 namespace 管理者,且仅限
DRAFT/REJECTED - 归档 / 取消归档:owner 或 namespace 管理者
- 隐藏 / 恢复技能、撤回已发布版本:平台技能治理权限
- 一个 skill 生命周期的唯一规范入口就是本文件
- 其它文档如
02-domain-model、05-business-flows、06-api-design、08-frontend-architecture必须与本文件保持一致 - 若后续代码再次改变生命周期语义,应先修改代码,再同步更新本文件和相关子文档