左列是后台字典里的 10 个 taskCategory 旧值,中列是新类目,右列是它在前台出现在哪里。灰底行 = 只在 ALL 出现、没有自己的 tab。
| 旧子分类 taskCategory | 新类目 | 落到哪个 tab | 备注 | |
|---|---|---|---|---|
| Product Reviews | → | 评测 Reviews | Reviews | 1:1,改的是显示名 |
| Tutorials | → | 教程 Tutorials | Tutorials | 1:1;是否并入官方教程(type=5)待拍板 |
| Creative Rigs | → | 作品 Works | Works | 1:1;「Rig」这个词从类目名里退出 |
| Featured Works | → | 作品 Works | Works | 取消的是选项,不是内容;历史内容归 Works |
| Get Help | → | 求助 Help | Help | 1:1 |
| Feature Requests | → | 求助 Help | Help | 合并;诉求类统一进 Help,不再单开一个类目 |
| Upgrade Rig | → | 教程 Tutorials | Tutorials | 玩法差异用标签 / 关联商品表达,不再用类目区分 |
| General | → | 其他 Other | 只进 ALL | 兜底值,不做 tab;后台统计其占比 |
| DreamRig | → | 其他 Other(暂) | 只进 ALL | 圈子 / 专题建好后二次调整 |
| Rig Studio | → | 其他 Other(暂) | 只进 ALL | 同上;内容不消失,只是暂时没有专属 tab |
后台一直按 所属栏目 type / 所属主题 category / 子分类 taskCategory 组织内容。本次只动第三层,前两层保持原样,避免牵动品牌帖、任务、官方教程的既有链路。
回答「内容从哪来、归哪个后台」,由发帖入口决定。6 个值全部保留,前台不感知。
用户帖固定 General,由前端固定传值、后台只读;迁移内容的 10/11 改回 General(语义已由新类目表达);品牌与官方的 2/4/5/6/7/8/9 一律保持。
唯一收窄的一层:字典只维护 5 个可选值;旧 10 个值进「历史值」区,+1 迭代 disabled、+2 迭代删除。原值在 task_category 字段留痕,不删不改。
为什么不是 10 → 5 一对一直落 tab:要么把 Other 也做成 tab(兜底类目被放大),要么让 DreamRig / Rig Studio 无家可归。现在的做法是「内容不丢(进 ALL)+ 结构不膨胀(不做 tab)+ 后续由圈子/专题接走」。
存量内容不迁移物理数据,只补一个新字段。前 5 步都留了回退口,只有第 6 步(删旧字典值)不可回滚,所以它放在最后、且隔两个迭代。
加字段 normalized_category,新帖同时写 task_category 与 normalized_category。
可回滚回滚:关闭双写,新字段留着不用
按 type=1 分批跑映射(每批带日志),DreamRig / Rig Studio 先归 Other。
可回滚回滚:按批次清空新字段重跑
每个新 tab 条数 = 映射后旧值条数之和;再抽 20 条人工核对。
可回滚回滚:不切换,继续读旧字段
tab、后台筛选、统计全部改读 normalized_category,先灰度。
可回滚回滚:开关切回旧字段
后台字典禁用 10 个旧值,前台不再下发;历史区仍可见。
可回滚回滚:恢复 enabled
从字典与前端常量中物理删除,task_category 原值仅留痕。
不可回滚依赖删除前的字典快照与备份
进入下一步的前提:Step 2 回填条数 = 存量社区帖数;Step 3 两套读数差异 = 0;Step 4 灰度期间前台无异常投诉。任一不满足就停在本步回滚,不往前推。
口径来源:《方案-首页Tab与发帖类目(建议稿)》第 3 节;字段与现状结构来自《smallrig.md》。本页只做关系说明,不含视觉设计。