文档集版本:2.0 · 更新日期:2026-10-30 · 状态:有效 代码基线:
FLINTHUB_VERSION = V1.3.1(version.php:8) 编写依据:docs/插件开发规范.mdv1.7(2026-10-21) 本次修订:对 28 份原始方案做存量能力比对,给出定级结论,并按开发文档标准重整结构。
1. 这套文档怎么用
本目录不是「待办功能清单」,而是经过存量盘点后的决策文档集。站点已有 88 个插件,核心能力在 V1.3.1 也已补齐多轮,因此原始 28 份方案里有相当一部分与现状重叠。开工前必须先看定级结论,再决定是否动手。
| 想知道什么 | 看哪里 |
|---|---|
| 这批方案哪些该做、哪些别做、为什么 | 01-规划定级台账 |
| 每个方案的完整技术设计 | plans/ 目录,按编号 |
| 所有插件都适用的硬规则、验证基线 | 00-通用合规基线 |
| 一份方案该写成什么结构才算合格 | 02-开发文档规范 |
| 原始未经盘点的版本 | _archive/original/(只读留档,勿引用) |
2. 定级总表(28 项)
四类结论,含义见 02-开发文档规范 §3。
2.1 可直接开发(13 项)——站点无等价能力,方案可原样落地
| # | 方案 | 目录 | 一句话价值 | 优先级 |
|---|---|---|---|---|
| 01 | 两步验证 | twofactor | 密码之外的第二因子,账号安全底座 | P1 |
| 02 | 客服工单 | support_ticket | 申诉/故障的闭环服务台 | P2 |
| 08 | 拍卖行 | auction_house | 稀缺品的竞价分配 | P3 |
| 09 | 在线聊天室 | chat_room | 实时公共频道 | P3 |
| 10 | 抢楼活动 | floor_event | 楼层驱动的运营活动 | P2 |
| 11 | 生日祝福 | birthday | 低成本留存触点 | P3 |
| 12 | 问卷表单 | form_builder | 结构化收集与统计 | P2 |
| 14 | RSS 输出 | rss_feed | 内容外部分发通道 | P2 |
| 15 | Webhook 推送 | webhook_push | 事件外流到外部系统 | P2 |
| 17 | WebPush 通知 | web_push | 浏览器级触达 | P3 |
| 18 | 相册图床 | photo_album | 用户图片资产的组织层 | P2 |
| 19 | 百科知识库 | wiki | 沉淀型内容载体 | P3 |
| 21 | 时光胶囊 | time_capsule | 情绪型玩法 | P3 |
2.2 需要插件增强(8 项)——不新建插件,改扩建现有归口
| # | 方案 | 归口 | 缺的是什么 | 处置 |
|---|---|---|---|---|
| 06 | 竞猜投注 | quiz_duel + dice | 已有 1v1 对赌与押大小,缺「多人同池、赔率浮动」模式 | 在对赌体系内加「群押池」模式,不建第三套押注 |
| 07 | 抽卡图鉴 | lucky_draw | 权重/库存/稀有度 N·R·SR·SSR 池已具备,缺「图鉴收集」层 | 给 lucky_draw 加图鉴册,不复制抽奖内核 |
| 20 | 相关帖子推荐 | feed_algo | 已离线算共现图谱与兴趣衰减,缺详情页「相关」面板出口 | 在 feed_algo 增设 right_sidebar_after 面板 |
| 22 | 私信站内信 | 核心 /message | 核心是「邮件式」(主题+正文),缺会话合并、未读角标、软删 | 做会话层包装插件,复用 messages 表,不建独立库 |
| 23 | 关注粉丝 | user_profile | user_follows 表与 follow/unfollow/列表已完整,缺关注动态流 | 直接给 user_profile 加 /follow/feed,不新建插件 |
| 24 | 帖子编辑历史 | edit_info | 现有表只存 edited_by/edited_at,无内容快照 | 扩 edit_info 加版本表与 diff,不与它抢同一钩子 |
| 26 | 帖子打赏 | inspiration_square | 已有完整打赏 Saga + 手续费账本,但只服务作品页 | 抽出通用打赏服务,扩展到帖子/楼层粒度 |
| 28 | 数据备份 | 核心 Admin\DatabaseController | 核心已做 WAL checkpoint + 全 data/ 打包 + 轮转 10 份,但不含 70 个插件库(递归含嵌套队列库共 73 个)与 uploads/ | 只补插件库与上传目录,核心库备份部分整段删除 |
2.3 需要重新制作(2 项)——现有实现语义错误,扩建不如重写
| # | 方案 | 现状问题 | 处置 |
|---|---|---|---|
| 16 | 短信验证码 | third_party_login 有 sms_codes/sms_rate 表与验证码逻辑,但没有任何网关调用(只有 access_key/sign_name/template_code 配置键),短信登录实际不可用 | 抽出独立通用短信服务(驱动 + 防刷矩阵 + 手机绑定),third_party_login 经钩子事件改调 |
| 27 | VIP 会员 | points_mall 的 VIP 商品是 updateGroupId() 永久换组,无到期、续费、降级概念,且污染核心用户组 | 独立做时长制会员,points_mall 的 VIP 商品改为调用它 |
2.4 不做 / 暂缓(5 项)
| # | 方案 | 为什么不做 | 已有替代 |
|---|---|---|---|
| 03 | 表情回应 | 核心点赞 + like_points 的档位浮层已提供多档表态;再叠一套 per-表情计数,维护成本高于感知收益 | 核心 votes + like_points |
| 04 | 宠物系统 | 与 xiuxian 同为挂机养成,同质化严重 | xiuxian(挂机修仙) |
| 05 | 开心农场 | 同上,且「偷菜」的原子扣减复杂度最高 | xiuxian |
| 13 | 兴趣圈子 | 核心版块体系已覆盖分区讨论;圈子差异化仅「用户自建 + 审批」,可由管理员代建版块替代。且这是 28 项里最重的方案 | 核心版块 + suiyu 动态流 |
| 25 | 回帖可见 | 核心 threads.reply_to_view 已实现整帖「回帖可见」,props 的「回复可见卡」可售卖;段级 [hide] 会新增 RSS/mobile_api/搜索摘要的泄漏面 | 核心 reply_to_view + props |
3. 建议推进顺序
定级之后只剩 23 项有效方案,按「补缺口 → 低成本高感知 → 重活」三档推进。
第 0 批 修语义(先做,避免带病扩张)
16 短信服务重制(第三方登录的短信通道当前不可用)
28 备份补插件库(70 个插件库 + uploads 不在核心备份范围,是真实风险)
27 VIP 时长制(points_mall 永久换组会污染用户组)
第 1 批 安全与内容底座
01 两步验证 → 12 问卷 → 02 工单
第 2 批 低成本高感知(增强类优先,改动面小)
22 私信会话层 → 23 关注动态流 → 24 编辑历史版本链
20 相关推荐面板 → 07 图鉴册 → 26 通用打赏
第 3 批 运营与外部分发
10 抢楼 → 14 RSS → 15 Webhook → 18 相册
第 4 批 重活(最后)
08 拍卖 → 09 聊天室 → 19 百科 → 17 WebPush → 06 群押池 → 11 生日 → 21 时光胶囊
4. 跨方案共性结论(规避重复踩坑)
盘点过程中确认的、多份方案共享的运行时事实,动手前不必再核一遍:
| 结论 | 影响方案 | 证据 |
|---|---|---|
核心私信是「邮件式」,messages 表无会话 ID、无软删 | 22 | app/SplitDB/Schema.php messages 建表语句 |
核心 reply_to_view 未授权时正文根本不下发,视图只输出锁定提示 | 25 | app/Controllers/ThreadController.php:226,281 |
核心备份走 VACUUM INTO → wal_checkpoint(TRUNCATE) → Database::closeAll() → 打包 data/ 全树 → 轮转 10 份 | 28 | app/Controllers/Admin/DatabaseController.php handleBackup() |
插件库位在 plugins/*/data/*.sqlite,直接 70 个(递归含队列库 73 个),不在 ShardRouter::dataPath() 之下 | 28 | find plugins -name '*.sqlite' |
points_mall 的 VIP 商品只改 user_groups,无到期字段 | 27 | plugins/points_mall/Plugin.php case 'vip' |
登录只有 auth_login_check(置 $GLOBALS['mod_system_login_blocked'] 拒绝)与 auth_login_after,没有「待验证」中间态 | 01 | docs/插件开发规范.md §9.1 #26/#27 |
edit_info 的 edit_history 表只有 edited_by/edited_at,无正文列 | 24 | plugins/edit_info/Plugin.php DDL |
user_follows 表 + follow/unfollow/followers/following 均已在 user_profile 内 | 23 | plugins/user_profile/Plugin.php:403,425,511 |
lucky_draw 奖品池已含 rarity(N/R/SR/SSR)、权重、库存 | 07 | plugins/lucky_draw/Plugin.php |
suiyu 自带一套关注:sy_follows(follower_id, followee_id),与 user_profile.user_follows(follower_id, followed_id) 列名都不同,数据互不相通 | 23 | plugins/suiyu/Plugin.php:86 vs plugins/user_profile/Plugin.php |
⚠️ 两套关注并存且列名不同:
user_profile.user_follows用followed_id,suiyu.sy_follows用followee_id,是两张互不相通的表。做 23 时必须先决定以哪套为准,否则会出现「主页显示已关注、suiyu动态流里没有」的割裂。
5. 文档集结构
插件开发规划/
├── README.md ← 本文件:索引 + 定级总表 + 推进顺序
├── 00-通用合规基线.md ← 28 项共用的硬规则与验证基线([B*] 编号)
├── 01-规划定级台账.md ← 逐项定级结论、依据、证据位置、处置动作
├── 02-开发文档规范.md ← 一份方案的标准结构、状态口径、评审要点
├── plans/ ← 28 份方案正文,统一前置元信息块
│ ├── 01-twofactor-两步验证.md
│ └── ...(按编号 01~28)
└── _archive/
└── original/ ← 盘点前的原始 28 份 + 旧 README,只读留档