chore: 导入清理前的完整工程状态(含 Capacitor 原生壳,作为回滚备份点)

This commit is contained in:
toor
2026-10-21 11:50:10 +08:00
committed by trae-solo-agent
commit 8ded87a3a8
389 changed files with 52242 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# 0001 菜谱数据的来源、质量与反馈闭环
- 状态:已实施(数据源为仓库 CSV,飞书已下线)
- 日期: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 | 只需审 PR | schema 校验 + 定期巡检 |
| 自建数据库后台 | 低 | 运维、鉴权、防灌水 | 自己写 |
## 决定
已实施(与数据源放在哪里无关,两条路线都需要):
- `pnpm validate` 在 CI 中校验食材、厨具词典、取值和视频号格式。
- 每周巡检 B 站视频,失效列表汇总到一个 issue。
- 详情页反馈入口和菜谱 Issue 表单。
- AI 审查做成仓库内的 `recipe-data-review` skill,由维护者在本地用 Codex / DeepSeek 等定期运行,只开 PR。不放在 GitHub Actions 里,避免 API Key 进仓库 Secrets,也不绑定某一家模型。
待定:数据源是否从飞书迁回仓库。倾向迁回仓库,不新开飞书表格(多一份数据只会多一处冲突)。
**结论:已迁回仓库。** `packages/data/recipe.csv` 是唯一数据源,`pnpm fetch` 与飞书依赖已移除;需要批量编辑时用飞书 / Excel 打开 `recipe.csv`,改完提 PR,CI 校验。
## 影响
- ~~收藏以行号为 id,因此不能删除或重排已有行。~~ 已由 [0002](./0002-feedback-and-ids) 引入固定 `id` 列解决;重复行(如「电饭煲版红烧肉」第 12/24 行)仍保留为警告,由维护者决定是否删除。
- 反馈入口用 GitHub Issue,没有 GitHub 账号的用户仍走原来的兔小巢 / 投稿表单。
- AI 只起草、不合并;不允许编造视频号。