跳至内容

0001 菜谱数据的来源、质量与反馈闭环 ​

  • 状态:提议中(质量校验与反馈闭环已实施;数据源迁移待定)
  • 日期:2026-10-18

背景 ​

菜谱维护在飞书电子表格里,维护者手动执行 pnpm fetch 导出为 app/data/recipe.csv。主要问题:

  • 没有内容校验。首次校验发现 21 处错误:错别字(「葫芦卜」「方面」)、逗号代替顿号、不在词典里的食材(「肉」「虾仁」「木耳」)、不存在的难度「复杂」。食材写错的菜谱永远筛选不到。
  • 失效视频只能等用户提 issue(#63、#83、#50、#47、#38)。
  • 外部贡献者要先被拉进飞书才能改数据。
  • 597 条中约 29% 缺难度、37% 缺做法。

方案对比 ​

方案贡献门槛运营成本质量保障
继续飞书表格需进飞书手动 fetch 提交无
飞书多维表格 + 表单低审核表单 + 定时同步字段级校验
仓库 CSV 为唯一数据源,Issue / PR 贡献 + CI 校验Issue 表单或 PR只需审 PRschema 校验 + 定期巡检
自建数据库后台低运维、鉴权、防灌水自己写

决定 ​

已实施(与数据源放在哪里无关,两条路线都需要):

  • pnpm validate 在 CI 中校验食材、厨具词典、取值和视频号格式。
  • 每周巡检 B 站视频,失效列表汇总到一个 issue。
  • 详情页反馈入口和菜谱 Issue 表单。
  • AI 审查做成仓库内的 recipe-data-review skill,由维护者在本地用 Codex / DeepSeek 等定期运行,只开 PR。不放在 GitHub Actions 里,避免 API Key 进仓库 Secrets,也不绑定某一家模型。

待定:数据源是否从飞书迁回仓库。倾向迁回仓库,不新开飞书表格(多一份数据只会多一处冲突)。迁移时:

  1. 飞书表格设为只读,表格顶部插入归档说明(见下)。
  2. build:full 不再调用 pnpm fetch;fetch 命令保留,仅用于对比历史数据。
  3. 需要批量编辑时,用飞书 / Excel 打开 recipe.csv,改完提 PR,CI 校验。

归档说明文字:

本表已于 YYYY-MM-DD 停止维护,仅作历史参考。菜谱数据已迁移到 GitHub:https://github.com/YunYouJun/cook/blob/main/app/data/recipe.csv 。新增或纠错请在应用内点「去反馈」,或到 https://github.com/YunYouJun/cook/issues/new?template=recipe.yml 提交。

若继续以飞书为源,需要加一个定时 pnpm fetch 并开 PR 的 workflow,飞书凭据放进 Actions Secrets,且飞书表格需要同步本次的 21 处修正,否则下次 fetch 会覆盖。

影响 ​

  • 收藏以行号为 id,因此不能删除或重排已有行。 已由 0002 引入固定 id 列解决;重复行(如「电饭煲版红烧肉」第 12/24 行)仍保留为警告,由维护者决定是否删除。
  • 反馈入口用 GitHub Issue,没有 GitHub 账号的用户仍走原来的兔小巢 / 投稿表单。
  • AI 只起草、不合并;不允许编造视频号。