refactor: 完成技能数据结构重构 - 分离内部信息与发布信息

- 新增技能内部信息与商店发布信息分离的数据结构
- 重构技能详情页为四段式布局(概览+当前生效版本+版本历史+管理)
- 移除历史版本中的下载按钮
- 版本历史改为卡片布局,新增发布信息预览
- 分类与标签合并显示,分类作为第一个标签
- 更新按钮禁用逻辑:下架审核中/已下架状态禁用上传新版本
- 下架技能按钮添加二次确认弹窗
- 补充10个不同状态的技能示例数据
- 同步 delta specs 到主 specs
- 归档变更:refactor-skill-data-structure
This commit is contained in:
2026-03-21 18:09:43 +08:00
parent 8179ff2f95
commit 017a8af2a3
21 changed files with 1452 additions and 646 deletions

View File

@@ -1,45 +1,61 @@
## ADDED Requirements
## Requirements
### Requirement: 版本上传表单
UploadVersionPage SHALL 提供版本上传的表单界面。
UploadVersionPage SHALL 提供版本上传的表单界面,包含发布信息字段
#### Scenario: 版本信息输入
- **WHEN** 用户打开上传新版本页面
- **THEN** 页面显示版本说明输入框文件上传区域
- **THEN** 页面显示版本说明输入框、技能发布名称输入框、技能发布描述输入框、分类下拉框、标签输入、图标选择器、文件上传区域
#### Scenario: 发布信息字段展示
- **WHEN** 用户在上传新版本页面填写表单时
- **THEN** 页面清晰区分版本说明(供审核参考)和发布信息(商店展示内容)
#### Scenario: 非首版本默认继承
- **WHEN** 用户上传非首个版本时
- **THEN** 技能发布名称、技能发布描述、分类、标签、图标默认继承当前生效版本的值
#### Scenario: 首版本默认值
- **WHEN** 用户上传首个版本时
- **THEN** 技能发布名称、技能发布描述、分类、标签、图标默认值为空
#### Scenario: 文件上传展示
- **WHEN** 用户在上传页面看到文件上传区域
- **THEN** 页面展示拖拽上传区域,支持 .zip 格式,显示上传图标和提示文字
### Requirement: 版本历史展示
SkillEditorPage SHALL 展示技能的版本历史列表。
SkillEditorPage SHALL 展示技能的版本历史列表,包含每个版本的发布信息
#### Scenario: 版本列表展示
- **WHEN** 用户打开技能详情页
- **THEN** 页面显示版本历史表格,包含版本号、版本说明、状态、更新时间、操作列
- **THEN** 页面显示版本历史卡片,每个版本使用普通卡片布局(非表格、非折叠),包含版本号、版本说明、发布信息预览、状态、更新时间、操作列
#### Scenario: 发布信息预览
- **WHEN** 用户查看版本历史卡片时
- **THEN** 每个版本卡片显示该版本的发布信息预览:图标 + 技能发布名称 + 标签列表
#### Scenario: 版本状态展示
- **WHEN** 用户查看版本历史列表
- **WHEN** 用户查看版本历史卡片
- **THEN** 每个版本显示对应的状态标签审核中warning、审核通过running、审核拒绝error、已撤销stopped
#### Scenario: 审核拒绝理由展示
- **WHEN** 版本状态为审核拒绝
- **THEN** 版本说明下方显示拒绝理由文本
- **THEN** 版本卡片内显示拒绝理由文本
### Requirement: 版本操作按钮
版本历史表格 SHALL 根据版本状态展示不同的操作按钮。
版本历史卡片 SHALL 根据版本状态展示不同的操作按钮。
#### Scenario: 审核中版本操作
- **WHEN** 版本状态为审核中
- **THEN** 显示"撤回审核"、"下载"按钮
- **THEN** 显示"撤回审核"按钮
#### Scenario: 已完结版本操作
- **WHEN** 版本状态为审核通过/审核拒绝/已撤销
- **THEN** 显示"下载"按钮
- **THEN** 显示操作按钮
### Requirement: 技能市场版本展示
SkillDetailPage SHALL 展示技能的最新版本信息。
#### Scenario: 最新版本展示
- **WHEN** 用户打开技能市场详情页
- **THEN** 页面示当前版本号、更新说明、更新时间(仅展示最新版本,不展示完整历史)
- **THEN** 页面示当前生效版本的发布信息,包括技能发布名称、技能发布描述、分类、标签、图标