跳至内容

0002 菜谱固定 id、应用内反馈与筛选信号 ​

  • 状态:已采纳
  • 日期:2026-10-18

背景 ​

  • 收藏按菜谱在数据里的位置记录,删一行会让后面所有菜的收藏错位,数据因此不敢清理;#98 计划把收藏同步到云端,位置 id 一同步就会出错。
  • 普通用户大多不用 GitHub,Issue 表单收不到他们的反馈。
  • 想让 AI 定期优化筛选,需要真实的使用数据和一个能对比前后效果的评测。

方案对比 ​

问题方案取舍
菜谱 id用位置(现状)不能删、不能重排
按菜名 + 视频算哈希改菜名或换视频就变成另一道菜
CSV 新增 id 列,取值等于现在的位置已有收藏无需迁移,老版本客户端也兼容;需要校验防止改动或复用
反馈渠道GitHub Issue普通用户不用
第三方表单(兔小巢、腾讯问卷)零开发,但要跳出应用、不带菜谱信息、难以自动汇总
自建后台要维护服务、登录、页面
CloudBase 云函数 + 集合复用现有 CloudBase,没有新服务;未登录也能提交
是否强制登录强制门槛太高,大部分人会放弃
不强制,登录后带上账号匿名提交按设备限频;登录用户的反馈权重更高,也能回访
管理后台先做 /admin现阶段反馈量小,不划算
skill 汇总 + PR 审核 + CloudBase 控制台反馈量大到需要非开发者帮忙审核时再做只读看板

决定 ​

  • recipe.csv 新增 id 列。已发布的 id 不能修改或复用,新菜谱用最大 id + 1;CI 用 pnpm validate --base 对比目标分支。
  • 菜谱详情页一键反馈,写入 cook-feedback 云函数;提交失败时退回 GitHub Issue 表单(现按 0012 保留内容,提供支持中心、可选邮件及 GitHub 入口)。
  • 应用匿名记录「无结果的食材组合」和「点开了第几个结果」两类聚合信号,不含账号信息。
  • pnpm feedback:pull 汇总反馈并生成评测样例 test/fixtures/search-eval.json,pnpm eval:search 评估排序。recipe-data-review skill 据此改数据、别名和排序,修改前后的评测指标写进 PR。
  • 反馈功能是普通网页代码,浏览器和云乐坊容器里都能用,不依赖 Capacitor,与 #98 下线独立 App 的计划一致。

影响 ​

  • 需要在 CloudBase 控制台建集合、部署函数、配置导出口令和 HTTP 访问,并允许未登录用户调用该函数(步骤见 菜谱数据)。在此之前,提交会失败并引导用户去 GitHub。
  • 删除菜谱现在是安全的,只影响收藏了这道菜的用户;是否删除由维护者决定,skill 不会自动删除。